任重道远迁移路之DB2到Oracle

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

列名db2oracle
c1char(10)char(10)
c2varchar(10)varchar2(10)
c3integernumber(10)
c4datedate
c5timestamptimestamp
c6decimal(24,2)number(24,2)
c7decimal(12,7)number(12,7)

2、创建从db2中导出数据

 
 
 
  1. export tbtest.del of del messages tbtest.msg select * from tbtest; 

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

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

 
 
 
  1. load data 
  2. infile ‘tbtest.del’ 
  3. truncate 
  4. into table tbtest 
  5. fields terminated by ‘,’ optionally enclosed by ‘”‘ 
  6. trailing nullcols 
  7. c1, 
  8. c2, 
  9. c3, 
  10. c4 date ‘yyyymmdd’, 
  11. c5 timestamp ‘yyyy-mm-dd hh24.mi.ss.xff’, 
  12. c6 “to_number(:c6,’9999999999999999999999.99′)”, 
  13. c7 “to_number(:c7,’99999.9999999′)” 
  14. )  

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

4、导入数据

 
 
 
  1. sqlldr shen/shen@db control=tbtest.ctl log=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在数据库更改、表变动或数据迁移有许多特性。

当前名称:任重道远迁移路之DB2到Oracle
文章路径:http://www.hantingmc.com/qtweb/news37/467687.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联