sqlldr经常报错的问题

sqlldr经常报错的一些问题:

1,日期格式
文本数据格式中的日期格式必须注意,而在control文件中需要显示说明格式,如:col1 date 'yyyy-mm-dd hh24:mi:ss'

2,sqlserver datetime to oracle timestamp
sqlserver导出的时间格式常需要转换,其datetime格式对应oracle的timestamp格式,需要使用to_timstamp来进行转换,或者使用timestamp来强制说明
如:
control文件内:col1 timstamp 'yyyy-mm-dd hh24:mi:ss'
或者:
select to_timestamp('2010-01-01 00:00:00.12','yyyy-mm-dd hh24:mi:ss') from dual

3, sqlldr decode
有时候需要在导入数据的时候就要做一些转换,那么可以使用decode来解决
比如,时间字段,sqlserver有时默认为0,默认为空,或者NULL,那么就需要使用decode和to_timestamp一起来解决了

4,sqlserver NULL
上面说到sqlserver的NULL,可以使用gsub替换掉NULL为空

5,null cols
字段值为空的时候,需要设置TRAILING NULLCOLS

6,windows to unix ^M
从windows创建的文本拷入unix,需注意末尾的换行符,可以替换掉:
tr -s "[\015\032]" "[\012*]" < customer_dl1.txt > customer_dl_new1.txt

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16179598/viewspace-730199/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16179598/viewspace-730199/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值