Posterior a indagar en varios repositorios y sitios webs al final hemos dado con la resolución que te mostramos aquí.
Solución:
Su tabla ya está bloqueada por alguna consulta. Por ejemplo, es posible que haya ejecutado “seleccionar para actualizar” y aún no haya confirmado/retrocedido y disparado otra consulta de selección. Realice una confirmación/reversión antes de ejecutar su consulta.
desde aquí ORA-00054: recurso ocupado y adquisición con NOWAIT especificado
También puede buscar el sql, el nombre de usuario, la máquina, la información del puerto y acceder al proceso real que mantiene la conexión.
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;
Por favor, elimine la sesión de Oracle
Use la siguiente consulta para verificar la información de la sesión activa
SELECT
O.OBJECT_NAME,
S.SID,
S.SERIAL#,
P.SPID,
S.PROGRAM,
SQ.SQL_FULLTEXT,
S.LOGON_TIME
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;
matar como
alter system kill session 'SID,SERIAL#';
(Por ejemplo, alter system kill session '13,36543'
😉
Referencia http://abeytom.blogspot.com/2012/08/finding-and-fixing-ora-00054-resource.html
Tienes la posibilidad dar difusión a este ensayo si te valió la pena.