最近参与的一个系统涉及到把SQL Server 2k的数据迁移到Oracle 10G这一非功能需求。特将涉及到相关步骤列举如下供大家参考:
环境及现有资源:
1、OS: Windows 7 Enterprise 32 bits
2、开发电脑安装有数据库SQL Server 2008、以及Oracle 10G R2
3、客户提供的SQL Server 2k的数据库备份.bak文件
4、Visual Studio 2008
5、Oracle ODAC 1020221
可选方案:
1、DTS(SQL SERVER 2000)或者SSIS(>= SQLSERVR 2005)
这是我采用的方式(.Net开发出身,没办法),本文余下部分也将只介绍该部分内容;
由于本地只安装了SQL SERVER 2008,因此我就直接在SQL SERVER 2008中对客户给的bak文件进行了数据恢复。
2、该方案来自朋友的介绍:在Oracle数据库做异构数据库(透明网关)。生成远程数据库的DB_LINK,然后在SQLSERVER里面捞出所有的表名,在ORACLE里面用create table xx as select * from xx@db_link;
这样生成一个脚本,执行脚本就可以把所有数据库里面的表数据捞到新数据库中。
该中方式的参照站点:
6、选择整表导出
7、选择需要到处的表,由于SQL SERVER与ORACLE之间的数据类型的不一致性,我们需要点击“Edit Mapping"按钮来编辑字段映射
8、默认数据库字段映射中有很多不正确的信息
这么多映射问题得解决啊!参照如下博文,我很好的了解了对应的数据类型映射关系,轻松搞定。
http://www.cnblogs.com/yiping06993010/archive/2007/08/02/840220.html
9.修改好的数据字段类型映射关系
10、在Visual Studio中看到新创建的包
11.最后运行选中的包
相关参考链接:
http://www.cnblogs.com/yiping06993010/archive/2007/08/02/840220.html