简体   繁体   中英

ORA-00054 while loading large data file

I get ORA-00054 while loading large data files(~ 10 gb) The error occurs when this a new file is loaded after a previous file. Any ideas how I can solve this?

One possible scenario.

Is this a direct path load ? If so, please check the v$locked_object view and see if is being locked by someone during your load.

select dbao.object_name
  from v$locked_object vlo,
       dba_objects dbao
  where vlo.object_id = dbao.object_id
    and dbao.object_name = 'Table that you are trying to load...'

From the Oracle Documentation at http://download.oracle.com/docs/cd/B10500_01/server.920/a96524/c21dlins.htm

Locking Considerations with Direct-Path INSERT

During direct-path INSERT, Oracle obtains exclusive locks on the table (or on all partitions of a partitioned table). As a result, users cannot perform any concurrent insert, update, or delete operations on the table, and concurrent index creation and build operations are not permitted. Concurrent queries, however, are supported, but the query will return only the information before the insert operation.

Maybe this is linked to tablespace datafile sizes, table size, because ORA-00054 usually appears when an ALTER statement is run.

I do not pretend to be right here.

Check those views.

  • DBA_BLOCKERS – Shows non-waiting sessions holding locks being waited-on

  • DBA_DDL_LOCKS – Shows all DDL locks held or being requested

  • DBA_DML_LOCKS - Shows all DML locks held or being requested

  • DBA_LOCK_INTERNAL – Displays 1 row for every lock or latch held or being requested with the username of who is holding the lock

  • DBA_LOCKS - Shows all locks or latches held or being requested

  • DBA_WAITERS - Shows all sessions waiting on, but not holding waited for locks

http://www.dba-oracle.com/t_ora_00054_locks.htm

Your table seems to be locked: ORA-00054 It can be because of the way that Oracle driver handles the BLOB types (the driver locks the record, opens an stream to write the binary data, and needs "some help" to release the record). I would try the next secuence:

  1. Load the first file
  2. COMMIT;
  3. Load the second file

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM