我们遇到了 sql loader 的问题。我们正在尝试使用 Sql Loader 在某些条件的基础上将大约 46 亿行(近 340 GB)的数据文件加载到 2 个 oracle 表中。但是在加载了 42 亿条记录之后,SQL 加载器进程正在完成而没有抛出任何错误,即使剩余的记录仍要加载也是如此。
也没有废弃或不良记录。SQL Loader 可以加载的记录数是否有限制?在任何地方都找不到任何此类记录。如果有人对此问题有任何线索,请告诉我。
谢谢!!
我们遇到了 sql loader 的问题。我们正在尝试使用 Sql Loader 在某些条件的基础上将大约 46 亿行(近 340 GB)的数据文件加载到 2 个 oracle 表中。但是在加载了 42 亿条记录之后,SQL 加载器进程正在完成而没有抛出任何错误,即使剩余的记录仍要加载也是如此。
也没有废弃或不良记录。SQL Loader 可以加载的记录数是否有限制?在任何地方都找不到任何此类记录。如果有人对此问题有任何线索,请告诉我。
谢谢!!
The value of 2³² is 4294967295 which is close to 4.2 billion.
So from the description of your problem I could only say that maybe sqlldr's default value for LOAD
is actually 2³² - 1, and this value is stored on 32 bits.
我已经测试了 Benoit 关于内部 LOAD 整数对于 +42 亿行来说太小的假设。它是正确的。将我的源文件切割成 -42 亿行的文件,并使用追加插入它们时,插入工作完美。
因此,这不是数据库限制,如此处所建议: https ://forums.oracle.com/message/11201322 (也在那里发布了我的结论)
此外,Oracle 论坛上的 BluShadow 建议尝试使用外部表。还没有测试。