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