直接问题..
Oracle 10 的文档指出:
(注意,我链接到 10g,因为它是最方便的,我将采用 Oracle 10 和/或 Oracle 11 的答案,无论哪种方式都可以 - 我怀疑它会是相同的答案 - 所以我添加了两个标签).
错误(允许的错误) 默认值:要查看此参数的默认值,请调用不带任何参数的 SQLLoader,如调用 SQLLoader 中所述。
ERRORS 指定允许的最大插入错误数。如果错误数超过为 ERRORS 指定的值,则 SQL*Loader 将终止加载。要完全不允许错误,请设置 ERRORS=0。要指定允许所有错误,使用非常高的数字。
(强调我的)。
因此,由于 Oracle 最多处理 NUMBER(38) 个..我尝试过:
ERRORS=999999999999999999999999999999999999
(36位)
并立即收到此错误:
SQL*Loader-100:命令行语法错误
尝试更小的数字:
ERRORS=999999
工作正常。
那么您在这里可以使用的最大值是多少? 我在文档中没有找到它,所以不确定我是否找错了地方,或者它根本不在那里:)
是的,我需要一个很大的数字,我正在加载一个数百万行的文件,所以我想使用尽可能大的数字以避免将来出现任何问题。
恕我直言,sqlldr 不支持数字(39)。我认为sql加载器中的所有数字参数都是整数数据类型。整数的常见限制是 2147483647。
sqlldr xxxx control=ctl.ctl errors=2147483648 -> exception
sqlldr xxxx control=ctl.ctl errors=2147483647 -> works fine
我解决了问题设置
errors=-1
在 Oracle 11g 上运行良好
errors=-1 失败 任何指示或帮助表示赞赏。