Db2的表数据导入到oracle中
个人想法是:把db2的数据导出为del格式,然后导出成csv格式,然后通过oracle的sqlload来进行数据导入,oracle的sqlload是个很不错的外部文件导入工具,通过它可以把固定格式的外部数据文件导入到oracle中,个人觉得sqlload比较像db2中del格式的文件的导入。
今天测试了一下,可行,发整个过程。
一:db2中建表并插入测试数据。
create table db2admin.db2_oracle_date
(
id integer,
id1 varchar(10),
id2 date
)not logged initially;
insert into db2admin.db2_oracle_date values(1,'赵',current_date),(1,'w',current_date-1 days),(1,'L',current_date-2 days);
select * from db2admin.db2_oracle_date;
---------------------------
1 '赵' '2008-09-10'
1 'w' '2008-09-09'
1 'L' '2008-09-08'
二:把表导出为csv格式文件
export to f:\zxt1.csv of del select * from db2admin.db2_oracle_date;
三:oracle中建表
SQL> connect zxt@orcl
输入口令:
已连接。
SQL> create table db2_oracle_date
2
SQL> create table db2_oracle_date
2 (id integer,
3 id1 varchar2(10),
4 id2 date
5 )
6 ;
表已创建。
四:用sqlload导入数据
SQL> host sqlldr userid=zxt/zxt control=F:\control.ctl
SQL*Loader: Release 10.2.0.1.0 - Production on星期三9月10 17:44:58 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
达到提交点-逻辑记录计数3
SQL> select * from db2_oracle_date
2 ;
ID ID1 ID2
---------- ---------- --------------
1赵 10-9月-08
1 w 09-9月-08
1 L 08-9月-08
SQL> host type F:\control.ctl
LOAD DATA
INFILE 'F:\zxt1.csv'
DISCARDMAX 1000
APPEND
INTO TABLE db2_oracle_date
TRAILING NULLCOLS
(
id terminated BY ',',
id1 terminated BY ',' OPTIONALLY ENCLOSED BY '"',
id2 DATE "YYYY-MM-DD HH24:MI:SS"
)
SQL>
注:oracle sqlload的控制文件有很多写法!也许我写的烦了点