Error “stopped because I can't continue” in SQ

2019-08-05 20:06发布

问题:

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 ...

回答1:

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.



回答2:

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.