尝试使用SQLLoader将大型文本文件加载到oracle db时,会出现以下错误:
SQL*Loader-926: OCI-Error; uldlfca:OCIDirPathColArrayLoadStream for table <myTabele>
SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.
SQL*Loader-925: Error in uldlgs: OCIStmtExecute (ptc_hp)
这只发生在DIRECT模式下,当我们使用传统的路径方法时,一切都很好(但速度慢很多)。所以我认为它不是数据或控制文件的一般部分的问题。
虽然错误信息非常有趣,但我能做些什么来让一切工作?
版本:SQLLoader 9.2.0.1,数据库是10.2.0.3.0(64位)
修改 经过一些尝试,似乎问题是由使用函数转换一些输入引起的。当我删除函数(在表定义中产生更改)时,一切似乎都正常工作。有可能在进行直接加载时我不能使用函数吗?文档说从版本9.x开始它应该有用......
答案 0 :(得分:1)
首先,如果人们可以开始指定他们遇到问题的产品的版本信息,那将是一个很大的帮助。
那就是说,我在metalink中发现了一个问题:
错误3073503 - 直接路径加载会话因OER而失败:klapse_30如果第一次加载的行获得ORA错误
描述
Direct load via sqlldr may report errors and the server may
fail with ORA-600 [klaprs_30] if the first loaded row fails
with oracle error.
eg: After an ORA-1722 loader fails with:
ORA-26095: unprocessed stream data exists
ORA-03113: end-of-file on communication channel
SQL*Loader-926: OCI error while uldlfca:OCIDirPathColArrayLoadStream for..
SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.
SQL*Loader-925: Error while uldlgs: OCIStmtExecute (ptc_hp)
and the user session fails with ORA-600 [klaprs_30].
Workaround:
Use conventional load
据说影响版本&gt; = 9.2但是&lt; 10.1.0.2
您可能希望在SQL Loader错误时检查警报日志中是否存在ORA-00600错误。
答案 1 :(得分:0)
检查数据库警报日志。直接路径插入在表的当前高水位线上方写入,因此当轮胎将更多范围分配给表时可能会出现问题。