oracle load导入TXT文件总结


                在项目中有一批数据要定时导入到数据库中,文本文件的内容如下,

 

20101020061010|808080123100001|1488015462605121|0001|000000001000|1001|20101020|4007|156|20101020|745147|20101020060855|13776413305|A73E0784555C454927D809A3776952114EFCACA0276C6F8B79FDF55558D316021867784F5E08A8143D6B91ACDFD23AC3975A52C52EFB5CA5FD4744227AA4999513324B043D4521F134A787EBD8C67E5023EC63A7CD2C1920A4E04733C4470F2DE757EE9DEE7F34BAA414901BFBB4419E79787CFFD3254B00A9E6985471C0D3ED
20101020064016|808080123100001|1488015462897029|0001|000000001000|1001|20101020|4007|156|20101020|745412|20101020063917|13776413305|8C28C569D19DF848216A8FE00EE5E029F3EC13E5018BDBD0F1CA1C1B80975EE1318E07851516583A894F4D07CF8696FF7E1098ADBBC85E8083E2C99361D476693986F4031A3C9FC9010CF0A34C2CD15551A46D1409DCE365B4FAAFD24DA6073C842865F3B4BBA8DA4F2A0C106F7B618DC9CC5117CAE69099801B226535363C6A

这些数据以“|”分隔开,一个文件差不多有6千条数据。。

决定用oracle 的 Load搞定他。。

首先建一个.ctl 控制文件

然后在文件里面输入

OPTIONS (skip=1)
load data 
INFILE  'E:\808080123100001_20101020_20101021042834.txt'
append into  table account_of_check
FIELDS TERMINATED BY '|'
trailing nullcols 
(
Chinapaydate,
MerId,
Ordid,
TransType,
Transamt,
Transstat,
Transdate,
GateId,
Curid,
cpDate,
Cpseqid,
longname1,
telno,
checkValue char(256),
FILLER_1 FILLER,
accountchid   "SEQ_account_of_check.nextVal"
)

由于我的表中是比文本文档上多了一个主键列(accountchid )我要主键自动增长,所以让sequence给他值,FILLER_1 FILLER这个后面的列不需要从文本上导入的

但要放到最后。。

当导入时始张报

表 ACCOUNT_OF_CHECK 的列 CHECKVALUE 出现错误。
数据文件的字段超出最大长度

这个错,搞得很纠结,因为我最后一列就是256个字符,我把字段设成了2000还是报这个错。。

后来经过大神们提醒 加了一个 char(256)

哈哈搞定了。。

最后在doc下输入


 

sqlldr xwmall/xwmall@10.32.65.42/oradb control =E:\Noname1.ctl log=Noname1.log;


记住要生成这个日志文件,方便你调试

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值