1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

任重道远迁移路之DB2到Oracle

2022-11-21 | 数据库 | 1818ip | 598°c
A+ A-

1、在db2数据库中存在表tbtest,有下列类型字段

列名 db2 oracle
c1 char(10) char(10)
c2 varchar(10) varchar2(10)
c3 integer number(10)
c4 date date
c5 timestamp timestamp
c6 decimal(24,2) number(24,2)
c7 decimal(12,7) number(12,7)

2、创建从db2中导出数据

exporttbtest.delofdelmessagestbtest.msgselect*fromtbtest;

注:在tbtest.msg文件中有警告信息,一般是一条记录变成了多行,需要手工改改。

3、创建oracle数据导入控制文件tbtest.ctl,内容如下:

loaddata
infile‘tbtest.del’
truncate
intotabletbtest
fieldsterminatedby‘,’optionallyenclosedby‘”‘
trailingnullcols
(
c1,
c2,
c3,
c4date‘yyyymmdd’,
c5timestamp‘yyyy-mm-ddhh24.mi.ss.xff’,
c6“to_number(:c6,’9999999999999999999999.99′)”,
c7“to_number(:c7,’99999.9999999′)”
)

注:如果是追加数据,将truncate改为append即可。

4、导入数据

sqlldrshen/shen@dbcontrol=tbtest.ctllog=tbtest.log

其次:

1.利用DB2的db2look命令可以直接导出数据库信息,包括:表结构,视图,函数,存储过程(唯一遗憾的是将DB2系统表信息等也导了出来,郁闷!)。

2.将创建表的语句单独存在一个文件,将Varchar用Varchar2代替。(当然表中字段没有大数据类型)。

3.在Oracle sql developer中执行建表语句。

4.利用PB将表逐个导入到Oracle中,数据迁移完成。(数据表很多,导了一天才导完,方法很笨吧?)。

建议:

1.如果是少的数据表,可以用Kettle工具,这个工具可以将源表结构自动转化为目标表结构。

2.数据导出、导入***利用PB中完成。起初,我将表导成Excel,利用Oracle工具导入,总是出现许多错误。而且对于Date类型数据,很难处理,但PB可以自动转化。

3.Kettle工具功能很强大,但没有时间来研究,它可能能完成很多功能。

4.PowerBuilder,PowerDesign在数据库更改、表变动或数据迁移有许多特性。

本文来源:1818IP

本文地址:https://www.1818ip.com/post/10724.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。