错误“已停止,因为我无法继续” 在 SQLLoader 中 - 直接模式

发布于 2024-07-10 20:21:21 字数 623 浏览 6 评论 0原文

当尝试使用 SQLLoader 将大型文本文件加载到 oracle 数据库中时,我们会收到以下错误:

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

When trying to load a large text file into the oracle db using SQLLoader, we get the following errors:

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)

This only happens in DIRECT mode, when we're using the conventional path method, everything is fine (but a lot slower). So I assume it can't be a problem with the data or the general parts of the control file.

While the error message is quite amusing, what can I do to get everything to work?

Versions: SQLLoader 9.2.0.1, Database is a 10.2.0.3.0 (64-bit)

EDIT
After some more trying, it seems that the problems are caused by using functions to convert some of the input. When I remove the functions (with the resulting changes in the table definition), everything seems to be working fine. Is it possible that when doing a direct load I cannot use functions? The documentation says that starting with version 9.x it should work ...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

第七度阳光i 2024-07-17 20:21:21

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

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

Bug 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 Loader 错误发生时检查警报日志中是否有 ORA-00600 错误。

First, it would be a big help if people could start specifying version information about the products they're having issues with.

That said, I found one issue in metalink:

Bug 3073503 - Direct path load session fails with OER:klapse_30 if first loaded row gets an ORA error

Description

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

Supposedly affects versions >= 9.2 but < 10.1.0.2

You might want to check the alert log for the ORA-00600 error at the time of the SQL Loader error.

梦言归人 2024-07-17 20:21:21

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

Check the database alert log. Direct path insert writes above the current high water mark for the table, so there may be an issue when it tires to allocate further extents to the table.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文