ORA-00054: prostředek obsazen a získán se zadaným NOWAIT nebo vypršel časový limit

Proč se mi při aktualizaci tabulky zobrazuje tato chyba databáze?

CHYBA na řádku 1: ORA-00054: prostředek obsazen a získán s uvedením NOWAIT nebo vypršel časový limit.

Řešení

Vaše tabulka je již uzamčena nějakým dotazem. Například jste možná provedli "select for update" a ještě jste neprovedli commit/rollback a nevyvolali další select dotaz. Před provedením dotazu proveďte commit/rollback.

Komentáře (4)

odtud https://stackoverflow.com/questions/3075738/ora-00054-resource-busy-and-acquire-with-nowait-specified

Můžete také vyhledat informace o sql, uživatelském jménu, stroji, portu a dostat se ke skutečnému procesu, který drží připojení.

SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,
S.MACHINE,S.PORT , S.LOGON_TIME,SQ.SQL_FULLTEXT 
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, 
V$PROCESS P, V$SQL SQ 
WHERE L.OBJECT_ID = O.OBJECT_ID 
AND L.SESSION_ID = S.SID AND S.PADDR = P.ADDR 
AND S.SQL_ADDRESS = SQ.ADDRESS;
Komentáře (5)

Váš problém vypadá, že mícháte operace DML & DDL. Podívejte se na tuto adresu URL, která tento problém vysvětluje:

http://www.orafaq.com/forum/t/54714/2/.

Komentáře (0)