`
lujar
  • 浏览: 512858 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

将Access数据库移植到Oracle笔记

阅读更多

开始移植工作的时候,尝试了很多自动转换工具,包括access通过odbc导出,csv导入等等,发现有一些问题: 例如得到字段类型转换不能满意,象Boolean被变成Char等等.后来开始自己写转换脚本.

1 最简单的使用SQL插入.所有的表结构通过手工定义.

<%@ LANGUAGE = VBScript CodePage = 936%>
<%

dim ConnStr,conn1,conn2,Db

Db = "olddb.mdb"
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(db)

Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.open ConnStr

Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
 SqlPassword = "test"
 SqlUsername = "SYSTEM"
 SqlLocalName = "ORCL"
 ConnStr = "Provider = OraOLEDB.Oracle.1; Persist Security Info=True; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Data Source = " & SqlLocalName & ";"

Set conn2 = Server.CreateObject("ADODB.Connection")
conn2.open ConnStr

sql="select * from XXLX"

Set rs1 = Server.CreateObject("ADODB.RecordSet")
rs1.Open SQL, Conn1, 1, 1

DO WHILE NOT rs1.EOF
      sql = "insert into XXLX (" _
      & "XXLXID" & "," _
      & "BUMEN" & "," _
      & "XXLX" & ")" _
      &"values('"  _
   & rs1("XXLXID") & "','" _
   & rs1("BUMEN") & "','" _
   & rs1("XXLX") & "')"
  
   Response.Write sql & " "
          conn2.execute(sql)
   rs1.MoveNext
LOOP

rs1.close
set rs1 = Nothing

conn1.close
set conn1=nothing

conn2.close
set conn2=nothing

%>

使用sql方式时候,要注意将字符串里面的'   " 转换掉.

If rs1("FILENAME") <> "" Then
filename =  Replace(rs1("FILENAME"),"'","''")
filename =  Replace(filename,"""","""""")
Else
filename = ""
End If

2 对于有些text字段很长,而oracle的SQL只能4000字的限制.将所有包含lob的字段通过ado 对拷的方式进行.

<%@ LANGUAGE = VBScript CodePage = 936%>
<%

dim ConnStr,conn1,conn2,Db,rs1,rs2

Db = "db.mdb"
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(db)

Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.open ConnStr

Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
 SqlPassword = "test"
 SqlUsername = "SYSTEM"
 SqlLocalName = "ORCL"
 ConnStr = "Provider = OraOLEDB.Oracle; Persist Security Info=True; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Data Source = " & SqlLocalName & ";"

Set conn2 = Server.CreateObject("ADODB.Connection")
conn2.open ConnStr

sql="SELECT * FROM MRCH ORDER BY ID ASC"

Set rs1 = Server.CreateObject("ADODB.RecordSet")
rs1.Open SQL, Conn1,1,1

sql="SELECT USERNAME USERNAME,ADDRESS ADDRESS,FILENAME FILENAME,INFO_TYPE INFO_TYPE,""DATE"" ""DATE"",TITLE TITLE,KEYWORD KEYWORD,SUMMARY SUMMARY,DOMAIN DOMAIN,DEPT DEPT,SENSITIVE SENSITIVE,SCBJ SCBJ,TIME TIME,JHXXLX JHXXLX FROM MRCH"
Set rs2 = Server.CreateObject("ADODB.RecordSet")
rs2.Open SQL, Conn2,1,4

Dim i,tmp
i = 0
DO WHILE NOT rs1.EOF
      i= i+1

      rs2.AddNew
      rs2("USERNAME")=rs1("USERNAME")
      rs2("ADDRESS")=rs1("ADDRESS")
      rs2("FILENAME")=rs1("FILENAME")
      rs2("INFO_TYPE")=rs1("INFO_TYPE")
      rs2("DATE")=rs1("DATE")
      rs2("TITLE")=rs1("TITLE")
      rs2("KEYWORD")=rs1("KEYWORD")
      rs2("SUMMARY")=rs1("SUMMARY")
      rs2("DOMAIN")=rs1("DOMAIN")
      rs2("DEPT")=rs1("DEPT")
      rs2("SENSITIVE")=rs1("SENSITIVE")
      rs2("SCBJ")=rs1("SCBJ")
      rs2("TIME")=rs1("TIME")
      rs2("JHXXLX")=rs1("JHXXLX")

      Response.Write i & rs1("SUMMARY") & rs1("TIME") &"<br>"
     
     
   rs1.MoveNext
LOOP

     rs2.updatebatch
     rs2.close
      set rs2 = Nothing

rs1.close
set rs1 = Nothing

conn1.close
set conn1=nothing

conn2.close
set conn2=nothing

%>

这里有三点要说明

1 必须使用oracle自己的oledb,用ms的,有数据类型的问题

2 所有的字段必须显示给出,否则oracle 会省略一些字段名: 例如info_type变成IN

3 ADO记录必须用1 4打开,批处理模式

分享到:
评论

相关推荐

    将 Microsoft Access 数据库移植到 Oracle

    将 Microsoft Access 数据库移植到 Oracle 将 Microsoft Access 数据库移植到 Oracle

    将您的 Access 数据库移植到 Oracle

    将您的 Access 数据库移植到 Oracle.mht 将您的 Access 数据库移植到 Oracle.mht

    将Access数据导入到Oracle数据库小程序

    本教程主要关注的是如何将Access数据库中的数据导入到Oracle数据库中。这是一个重要的过程,因为Access通常用于小型或中型企业,而Oracle则常用于大型企业,它提供了更高级别的性能和可扩展性。 **Access与Oracle...

    将access数据库移植到sql server 7.0.rar

    本篇文章将详细阐述如何将Access数据库移植到SQL Server 7.0,以实现更高效、更稳定的数据管理和处理。 首先,我们需要了解Access和SQL Server 7.0的基本特性。Access以Jet引擎为基础,提供直观的用户界面,易于...

    access 数据库 迁移 到 oracle 数据库,delphi2007

    今天需要把access数据库的内容迁移到oracle数据库,本来想每个表都做一个导入按钮的,后来想想这个办法太死板,经过一个白天的努力,写成这个可以快速迁移数据的软件,因为只是满足自己需要,所以很多方面没有完善,...

    将Access数据库移植到SQL Server

    【将Access数据库移植到SQL Server】是一个常见的数据库迁移任务,主要目的是为了提升系统的性能和可扩展性,因为SQL Server作为一款企业级的关系型数据库管理系统,能够处理更大规模的数据和更复杂的事务处理。...

    将Access数据库移植到SQL

    【将Access数据库移植到SQL】是一项常见的数据库迁移任务,尤其当企业对高性能和高可用性的需求增加时。Access 2000 Upsizing Wizard是微软为实现这一迁移提供的工具,它可以将Access表格和查询迁移到SQL Server 7.0...

    将Access数据库移植到SQLServer.pdf

    标题中的“将Access数据库移植到SQLServer”是指将原本存储在Microsoft Access数据库系统中的数据和结构迁移到更强大、更适合企业级应用的Microsoft SQL Server数据库系统的过程。这通常是因为Access数据库无法满足...

    access数据库MDB数据文件导入oracle数据库操作步骤.pdf

    * Access 数据库 MDB 文件是一种数据库文件格式,需要使用 ODBC 导入器工具将其导入到 Oracle 数据库中。 * 使用 PL/SQL 工具可以实现数据的导入和导出。 * 选择 ODBC 导入器工具可以将数据从其他数据库导入到 ...

    Access 数据库移植到 Microsoft SQL Server

    将Access数据库移植到Microsoft SQL Server 7.0是一项复杂但至关重要的工作。通过使用Access 2000 Upsizing Wizard、SQL Server Management Studio、Data Transformation Services以及其他辅助工具,可以有效地完成...

    Access数据库基础与应用基础知识笔记.pdf

    Access数据库是Microsoft Office套件中的一款关系型数据库管理系统,它提供了直观的图形用户界面和强大的数据分析工具,适合小型企业或个人使用。以下是对Access数据库基础知识的详细解释: 1. **数据库基本概念**...

    如何将Access表中的数据导入到ORACLE中

    要将 Access 表中的数据导入到 ORACLE 中,首先需要在 Access 数据库驻留的机器上安装 ORACLE 客户端。然后,使用 NetManager 配置 ORACLE 服务名。接下来,在 Access 数据库驻留的机器上创建 DSN,连接 ORACLE ...

    将Access数据库移植到Microsoft SQL Server 7.0

    将Access数据库移植到Microsoft SQL Server 7.0是一个常见的数据库迁移过程,这通常发生在需要更高性能、更大容量或者更高级的企业级功能时。Access的Jet引擎虽然适合小型到中型企业使用,但面对复杂的企业级应用,...

    access数据库转换工具

    Access数据库转换工具是一种专门用于将Microsoft Access数据库格式的数据迁移到其他数据库系统或文件格式的软件。Access数据库(.mdb或.accdb)虽然在小型企业和个人用户中广泛应用,但有时需要与不支持Access格式的...

    力控与access数据库.pdf

    然后,我们可以使用SQLConnect函数连接到Access数据库,并使用SQLInsert函数将变量的值插入到数据库中。最后,我们需要使用SQLDisconnect函数断开数据库连接。 四、SQLConnect函数 SQLConnect函数是用于连接到...

    Access数据库查看、Access数据库修改、Access数据库添加、Access数据库删除

    本教程将详细讲解如何进行Access数据库的查看、修改、添加和删除操作。 一、Access数据库查看 1. 打开Access数据库:双击Access文件(扩展名为.mdb或.accdb)即可启动Access并打开数据库。如果使用的是Access_View...

    Access数据库访问引擎64位.rar

    Navicata是一款强大的数据库管理和开发工具,支持多种数据库管理系统,包括MySQL、Oracle、SQL Server等,同时也包括对Access的支持。然而,由于Navicat本身可能是32位版本或者默认不包含64位的Access驱动,因此在64...

    access导入到oracle数据库工具

    本文将详细讲解如何使用特定的工具将Access数据库中的数据导入到Oracle数据库中,以及涉及到的相关技术点。 首先,Access和Oracle是两种不同类型的数据库管理系统。Access是由微软开发的关系型数据库系统,主要应用...

    Access数据库数据导入Oracle服数据库

    当我们需要将Access中的数据迁移到Oracle服务器时,这个过程称为数据迁移或数据导入。 "AccessToOracle ImportData"是一个专门为此目的设计的工具,它简化了从Access到Oracle的数据迁移过程。这款软件提供了可视化...

Global site tag (gtag.js) - Google Analytics