直截了当的问题..
Oracle 10的文档指出:
Oracle 10g sql*loader documentation
(注意,我联系了10g,因为它最方便,我会回答Oracle 10和/或Oracle 11,无论哪种方式都很好 - 我怀疑它会是相同的答案虽然 - 所以我添加了两个标签。)
错误(允许的错误) 默认值:要查看此参数的默认值,请调用不带任何参数的SQL Loader,如调用SQL Loader中所述。
错误指定允许的最大插入错误数。如果错误数超过为ERRORS指定的值,则SQL * Loader将终止加载。要完全不允许错误,请设置ERRORS = 0。要指定允许所有错误,使用非常高的数字。
(强调我的)。
所以,由于Oracle最多处理NUMBER(38)..我试过:
ERRORS=999999999999999999999999999999999999
(36位数)
并及时收到此错误:
SQL * Loader-100:命令行上的语法错误
尝试使用更小的数字:
ERRORS=999999
工作正常。
那么你可以在这里使用的最大值是什么? 我在文档中找不到它,所以不确定我是在寻找错误的地方,还是不在那里:)
是的,我需要一个大号,我正在加载一个数百万行的文件,所以我想尽可能地使用它来避免任何未来的问题。
答案 0 :(得分:2)
IMHO sqlldr不支持号码(39)。我认为sql loader中的所有数字参数都是整数数据类型。整数的常见限制是2147483647。
sqlldr xxxx control=ctl.ctl errors=2147483648 -> exception
sqlldr xxxx control=ctl.ctl errors=2147483647 -> works fine
答案 1 :(得分:0)
我解决了问题设置
errors=-1
在Oracle 11g上工作正常