ORACLE SQLLOADER使用点滴

参考:http://blog.csdn.net/chenrizhong/article/details/7049975

需求:

ORACLE从一个库中的多表查询的数据导入到另一个库中的一张表


实现:

由于数据量不少,将数据导出到文件,然后使用SQLLDR导入。



遇到问题及解决:

1、sqlldr是可以字段间是空的,但在使用时,记得在控制文件中增加TRAILING NULLCOLS


2、中文字符集问题:

在导入的时候,中文字符集导致报错:ora-12899。尽管不是乱码,但总莫名显示有些列超过最大限制。

处理方法:查网上的方法,是说最好源库读出,sqlldr所在环境(本人程序在unix),以及目标库字符集要一致。我在导出和导入的脚本设置:NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK  export NLS_LANG。库字符集为GBK,导入后错误减少。

其他方法:控制文件也可定义CHARACTERSET UTF16(未测试)


建议是最好库、sqlldr都使用相同的字符集,但是在我脚本定义支持中文后(原来默认是英文),不管目的库和源库是否相同,都可以导入。但另一个问题是,没办法100%导入,我导入3w,有一条无法导入。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值