方法一:用SQL Server的DTS先用DTS把Access导入SQL Server中,然后再导入到Oracle中,两三分钟就可以了方法一:
用Oracle Migration Workbench
 在Oracle 网上可以下载

解决方案 »

  1.   

    http://www.oradb.net/tran/ora2access.htm
      

  2.   

    dts
    直接从access到oracle,可以不需转储sql server
      

  3.   

    直接从access到oracle,可以不需转储sql server
      

  4.   

    用sqlserver中转一下较好!我以前也做过这方面的工作,不是太好转,一些Blob或是Clob类型的挺麻烦!
      

  5.   

    谢谢诸位!
    我试过了,通过 SQL SERVER 中转后使用 DTS 可以实现,直接通过 DTS 也可以实现,通过用Oracle Migration Workbench 很麻烦,而且效果不佳。
    由于数据量较大,一个客户表如果有2万条记录,大概要花8分钟左右,我总共要升级400多个老库,而且老库的数据还可能存在错误,导入时可能报错.很是伤脑筋啊。
    还有一种办法,就是用程序实现,我想到的办法是:在程序中建立两个连接,一个连接源Access数据库,另一个连接Oracle数据库,将Access数据库的数据放入一个记录集中,然后用一个循环将这些记录一条一条插入Oracle数据库对应表中。这个方法不知大家有没有用过,我估计效率可能更低,不过,捕获错误的能力可以加强,及时避免因源数据的问题而导致的重复工作。这对于有400多个老数据库的升迁也许也是个好方法,大家给我再出出主意,先谢了。
      

  6.   

    "用程序实现"不太好,因为你的程序对错误的处理一不一定比DTS好
    再者,我看你程序的思路就是DTS的实现过程。这就好比你自已去写了一个与DTS一样的东东。还是用DTS比较好
      

  7.   

    DTS只告诉你发生了什么样的冲突,如字段长度不够(如由于对汉字的处理Access和Oracle
    不一样,前者一个汉字占一个字符,而到后者就是两个字节了)或约束冲突,但它不告诉你到底是哪条记录造成的,用程序就可以知道是哪条记录出的问题了。
      

  8.   

    DTS里你可以编程来转换呀!!
      

  9.   

    哦,看来确实要学习一下DTS,谢谢! 我用的是SQL SERVER 带的 DTS ,实际上用的是图形化界面DTS Wizard.楼上这位朋友可以简单介绍一下如何在DTS里编程吗?
      

  10.   

    看书<SQL Sever 2000 完全实战-数据转换服务(DTS)>中国铁道出版社
    章立民 编著
      

  11.   

    我用我上面提到的程序的方法试了一下(用VB6和ado),成功了,而且速度比 DTS 快多了,大概3分钟.不过,我不熟悉 Oracle 的 Insert 语句错误捕获问题,还需研究。
      

  12.   

    ADO这东西真不错, Oracle 的插入错误都能捕获到。看来这条路子可行。
      

  13.   

    DTS??
    能够将oracle数据库移植到SQL SEVER吗?
    我看来要好好学习使用它了!
      

  14.   

    我以前也用过用vb6+ado从access导入到ORACLE8中。
    因access与oracle列不同所以用VB 因本人熟悉VB。
    在insert时如果出错的话直接就显示错误了,
    是插入的值过长等等。
    也可以用 msgbox 来显示这条insert 语句.
      

  15.   

    可以把表生成文本,然后用sqlldr来导,这样可以捕捉错误的数据再处理
      

  16.   

    使用borland的工具datapump很方便,在c++ Builder和deplih中带有的!
      

  17.   

    对于大量的数据库需要转化的时候,转化的速度也必须考虑,如DTS转的速度就不如程序快,实际中采用哪种方案要根据实际情况来定。