您可以为 Oracle SQL*loader 设置 ERRORS 的最大值是多少?

问题描述 投票:0回答:3

直接问题..

Oracle 10 的文档指出:

Oracle 10g sql*loader 文档

(注意,我链接到 10g,因为它是最方便的,我将采用 Oracle 10 和/或 Oracle 11 的答案,无论哪种方式都可以 - 我怀疑它会是相同的答案 - 所以我添加了两个标签).

错误(允许的错误) 默认值:要查看此参数的默认值,请调用不带任何参数的 SQLLoader,如调用 SQLLoader 中所述。

ERRORS 指定允许的最大插入错误数。如果错误数超过为 ERRORS 指定的值,则 SQL*Loader 将终止加载。要完全不允许错误,请设置 ERRORS=0。要指定允许所有错误,使用非常高的数字。

(强调我的)。

因此,由于 Oracle 最多处理 NUMBER(38) 个..我尝试过:

ERRORS=999999999999999999999999999999999999

(36位)

并立即收到此错误:

SQL*Loader-100:命令行语法错误

尝试更小的数字:

ERRORS=999999

工作正常。

那么您在这里可以使用的最大值是多少? 我在文档中没有找到它,所以不确定我是否找错了地方,或者它根本不在那里:)

是的,我需要一个很大的数字,我正在加载一个数百万行的文件,所以我想使用尽可能大的数字以避免将来出现任何问题。

oracle11g oracle10g sql-loader
3个回答
5
投票

恕我直言,sqlldr 不支持数字(39)。我认为sql加载器中的所有数字参数都是整数数据类型。整数的常见限制是 2147483647。

sqlldr xxxx control=ctl.ctl errors=2147483648 -> exception 

sqlldr xxxx control=ctl.ctl errors=2147483647 -> works fine 

0
投票

我解决了问题设置

errors=-1

在 Oracle 11g 上运行良好


0
投票
Oracle 19c 客户端升级后

errors=-1 失败 任何指示或帮助表示赞赏。

© www.soinside.com 2019 - 2024. All rights reserved.