日期:2014-05-17  浏览次数:20536 次

orcal数据库转成Sql 2008
我现在有个orcal数据库,现在想把整个数据库结构以及数据转成Sql 2008 。求大神指导!

------解决方案--------------------
把创建表的sql倒出来,修改字段类型有异议的,再创建。
------解决方案--------------------
oracle和SQL server的字段类型很多都不一样,需要改动的地方比较多。
------解决方案--------------------
用导入导出向导吧
------解决方案--------------------
SQL Server和Oracle有太多的不一样了,所以我觉得不要直接将数据转过来一定要Review一下你在Oracle中的代码然后看看在SQL Server中如何实现。同样的代码在Oracle中可以跑的起来在SQL Server中不一定(比如Oracle的写不会阻塞读,但是SQL Server会)
------解决方案--------------------
分享下我在工作中数据迁移经验:

1.表结构:powerdesigner + vbscript 即可实现。

通过PowerDesigner工具的reverse engineer 功能把Oracle结果导出,再通过Power Designer中的Change Current DBMS把DBMS从Oracle转换为SQL Server,然后写vbScript进行批量转换,如把Oracle中的number类型转换成SQL Server中的bit,smallint,int,bigint,nvarchar2转换成nvarchar,默认值sysdate 转换为getdate() ......

2.数据转换,可以考虑开源工具Kettle。Kettle在处理clob类型方面,个人感觉不错。

3.检查数据。


在数据转换步骤,可以考虑把整个Oracle的数据库数据直接导入到SQL Server一个临时创建的转换数据库中,再通过T-SQL脚本,从转换数据库迁移到真实环境中。通过T-SQL脚本可以很好的处理和筛选无效的数据,使得新结构更为严谨和可用性。

对应clob类型直接通过Kettle工具转换到真实环境中,如存在外键约束,先删除外键约束,待导入数据后再调整。