ORACLE SQLLOADER使用点滴

来源:互联网 发布:java最小公倍数 编辑:程序博客网 时间:2024/05/17 04:16

参考: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,有一条无法导入。




0 0