db2数据迁移到oracle

其他数据库的数据导到Oracle数据库中,可以通过从一个数据库中把数据以文件方式导出,例如是csv格式的文件,然后使用Oracle的sqlldr的命令 加载文件的方式 加载到Oracle中。


参考链接地址:http://www.cnblogs.com/atwanli/articles/6273962.html


1.导出db2原始数据

复制代码
db2 "EXPORT TO ft_user.csv OF DEL  
SELECT ROW_NUMBER() OVER() AS DBID,
COALESCE(TO_CHAR(TRANS_UPDATETIME,'yyyymmdd'),TO_CHAR(SYSDATE,'yyyymmdd')) AS FRONT_DATE,
COALESCE(TO_CHAR(TRANS_UPDATETIME,'HH24mmss'),TO_CHAR(SYSDATE,'HH24mmss')) AS FRONT_TIME, 
'000000' AS FRONT_SEQ,
MER_ID AS BUSS_NO,
USER_ACCTNO AS CARD_NO,
0 AS SIGN_STAT,
COALESCE(TO_CHAR(TRANS_BEGINDATETIME,'yyyy-mm-dd HH24:mm:ss'),TO_CHAR(SYSDATE,'yyyy-mm-dd HH24:mm:ss')) AS CREATE_TIME,
COALESCE(TO_CHAR(TRANS_UPDATETIME,'yyyy-mm-dd HH24:mm:ss'),TO_CHAR(SYSDATE,'yyyy-mm-dd HH24:mm:ss')) AS MODIFY_TIME  
FROM FT_USER"
复制代码

 数据格式:

复制代码
1,"20150916","180950","000000","800000000000039","5289489950000196",0,"2015-09-16 18:09:50","2015-09-16 18:09:50"
2,"20151022","161008","000000","800000000000040","5289489950000196",0,"2015-09-17 09:09:24","2015-10-22 16:10:08"
3,"20151021","101030","000000","800000000000040","4218719930000406",0,"2015-10-12 14:10:56","2015-10-21 10:10:30"
4,"20151110","101113","000000","800000000000023","5289489950000196",0,"2015-10-22 17:10:57","2015-11-10 10:11:13"
5,"20151110","101155","000000","800000000000023","4218719930000406",0,"2015-10-22 17:10:59","2015-11-10 10:11:55"
6,"20151222","141241","000000","800000000000039","4218710000004071",0,"2015-12-07 10:12:36","2015-12-22 14:12:41"
复制代码

 

2.导入oracle数据

orale表结构

复制代码
CREATE TABLE ALIPAY_SIGN(
    DBID            NUMBER(20)      NOT NULL PRIMARY KEY,
    FRONT_DATE      VARCHAR2(8)     NOT NULL,
    FRONT_TIME      VARCHAR2(6)     NOT NULL,
    FRONT_SEQ       VARCHAR2(60)    NOT NULL,
    BUSS_NO         VARCHAR2(15)    NOT NULL,
    CARD_NO         VARCHAR2(19)    NOT NULL,
    SIGN_STAT       VARCHAR2(1)     NOT NULL,
    CREATE_TIME     DATE            NOT NULL,
    MODIFY_TIME     DATE            NOT NULL,
    UNIQUE(BUSS_NO,CARD_NO)
);
CREATE SEQUENCE ALIPAY_SIGN_DBID_SEQ MINVALUE 1 MAXVALUE 9999999999999999999 INCREMENT BY 1 NOCYCLE;
复制代码

 

 ft_user.ctl脚本

复制代码
load data
append into table "ALIPAY_SIGN"
fields terminated by "," optionally enclosed by '"'
trailing   nullcols
(DBID "ALIPAY_SIGN_DBID_SEQ.nextval",FRONT_DATE,FRONT_TIME,FRONT_SEQ,BUSS_NO,CARD_NO,SIGN_STAT,CREATE_TIME DATE "YYYY-MM-DD HH24:MI:SS",MODIFY_TIME DATE "YYYY-MM-DD HH24:MI:SS")
复制代码

 

 运行脚本

sqlldr userid=user/passwd control=/tmp/ft_user.ctl log=/tmp/ft_user.log data=/tmp/ft_user.csv rows=1000


在实际中,需要通过编写shell脚本的形式,做到可配置的方式来加载。




  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值