1

尝试使用 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 开始它应该可以工作......

4

2 回答 2

1

首先,如果人们可以开始指定他们遇到问题的产品的版本信息,那将是一个很大的帮助。

也就是说,我在 metalink 中发现了一个问题:

错误 3073503 - 如果第一个加载的行出现 ORA 错误,则直接路径加载会话失败并出现 OER:klapse_30

描述

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

据称影响版本 >= 9.2 但 < 10.1.0.2

您可能希望在 SQL 加载程序错误时检查警报日志以查找 ORA-00600 错误。

于 2009-01-12T17:04:40.440 回答
0

检查数据库警报日志。直接路径插入写入表的当前高水位线之上,因此当它厌倦为表分配更多扩展区时可能会出现问题。

于 2009-01-12T21:59:15.930 回答