从Access 2000数据库转移到Oracle 9i

  Oracle 9i中提供强大的迁移功能,可以从多种数据库向Oracle迁移数据。Oracle新发行的迁移工具提供了从Access 2000向Oracle 92010迁移的简便易行的解决方案,该方案克服了中文乱码问题和字符串被截断的问题,如下就是从Access 2000向Oracle 92010迁移的全过程。

  一、下载最新版本的OMWB(Oracle Migration Workbench)

  并安装到下载Oracle Migration Workbench Release 9.2.0.1.2 for MicrosoftWindows98/NT/2000/XP 和 从Access 2.0, 95, 97 or 2000 to 到Oracle平台迁移的插件,二者的最新版本都是92012。首先把OMWB安装到与Oracle不同的主目录中,然后安装Access插件到同一目录。

  二、为迁移准备数据源

  到OMWB主目录的\Omwb\msaccess_exporter目录下,打开omwb2000.mde文件,输入将要迁移的Access数据库文件和即将生成的针对数据库的XML描述文件,这时你回发现在与Access相同的路径下生成了一个同名的XML文件,打开这个文件,其中记录了Access数据库的表的列和关系、视图的定义。OMWB支持Access的中文表名和列名,但要注意在生成XML文件之前要先修改\Omwb\msAccess_exporter\schema.dtd文件,将首行的encoding=“ISO-8859-1”修改为encoding=“GBK”,然后在通过打开omwb2000.mde文件为数据库生成XML文件,这时表名和列名就成功显示中文了,在迁移到Oracle之前,还要用同样方法修改生成的XML文件的编码为encoding=“GBK”。

  三、运行OMWB执行迁移过程

  运行OMWB,根据提示,输入Access数据库的描述文件,即上一步生成的XML文件,根据该文件为迁移生成数据源,该数据源包括表、索引、主键、关系和表验证规则。接下来生成Oracle模型,OMWB自动生成表空间和两个用户。数据源和目标数据模型都存储在Oracle的资料档案库里,该库由安装OMWB工具时系统提示生成。下一步就可以执行迁移过程了,还可以为迁移生成脚本程序。

  四、解决中文字符被截断的问题

  OMWB提供由数据源和目的的数据类型影射,修改该数据影射可以改变迁移目标的数据长度和类型,但我尝试多次也没能解决这个问题,包括在OMWB读取XML文件生成的Access模型中修改源数据类型也无济于事。问题在于Access本身。首先打开Access数据库,修改其数据表中的数据类型和长度,保存数据库后退出,再次为数据库生成XML描述,这时我们会发现XML文件的表列定义改变了,重新运行OMWB,为迁移生成源数据模型后,源模型和目标模型的数据类型和长度也自动改变了,之后的迁移过程即可正确迁移长中文字符串了。Oracle提供的企业管理器和应用服务器的web形式界面里存在几处相同的问题,修改资料档案库根本不能解决问题,这也算是Oracle数据库产品的图形界面工具的缺陷。