Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Urgent ---- SQLLDR Error

Re: Urgent ---- SQLLDR Error

From: Paul Drake <drak0nian_at_yahoo.com>
Date: 12 Jan 2004 22:33:33 -0800
Message-ID: <1ac7c7b3.0401122233.6d8e10bc@posting.google.com>


pargat_g_at_yahoo.com (pargat singh) wrote in message news:<59f09594.0401121222.32a65a2e_at_posting.google.com>...
> Hi Everyone
>
> I am using SQLLDR to load the data and i am getting following error
>
> SQL*Loader-908: Unable to lock table TABLE_NAME due to ORACLE
> error 54.
>
> Loader Cmd is
>
> SQLLDR.EXE userid=XXXXX/YYYY_at_ZZZZ control=S:\.......\iss3_memdoc.ctl
> direct=true log=S:\.....\iss3_SQLLDR_Memdoc.log
> bad=S:\....\iss3_memdoc.bad data=S:\....\iss3_memdoc.dat
> discard='S:\....\iss3_memdoc.discard' errors=1000 rows=20000
>
> Can anyone please tell me what is wrong and what i can do to fix it.
>
> Thanks in advance.
>
> Pargat Gill

I believe (could be wrong) that the default behavior in sqlldr is to truncate a table that you are loading into, unless you specify APPEND.

If any other user has any sort of lock on any row or on the table, the truncate command will fail.
See, error 54 is ORA-00054: resource busy and acquired with NOWAIT

So, if you were simply intended to load additional rows, the sqlldr 'ing session is the one that is not playing nicely in a multiuser environment.

As Daniel indicated, how about you load this into a staging table and get that working first. Then read the docs for using sqlldr and append the rows is that i s your intention. Maybe you got lucky by having the truncate operation fail. If you did want to truncate the table, then by all means, kill the other session, and not just via an ALTER SYSTEM command.

Pd Received on Tue Jan 13 2004 - 00:33:33 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US