ORA-00054: recurso ocupado e adquirir com NOWAIT especificado ou tempo esgotado

Por que estou a receber este erro na base de dados quando actualizo uma tabela?

ERRO na linha 1: ORA-00054: recurso ocupado e adquirir com NOWAIT especificado ou timeout expirado

Solução

A sua mesa já está trancada por alguma consulta. Por exemplo, você pode ter executado "selecione para update" e ainda não se comprometeu/rollbacked e disparou outra consulta seleta. Faça um commit/rollback antes de executar a sua consulta.

Comentários (4)

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

Você também pode procurar o sql, nome de usuário, máquina, informação da porta e chegar ao processo real que mantém a conexão

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;
Comentários (5)

O seu problema parece que está a misturar DML & operações DDL. Veja este URL que explica este problema:

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

Comentários (0)