¿Hay alguna manera de probar si una fila se ha bloqueado para la actualización en Oracle?¿Cómo verifica si una fila está bloqueada para la actualización?
A modo de ejemplo, supongamos que la siguiente consulta, realizada por un usuario:
select * from SOME_TABLE where THE_ID = 1000 for update;
con otro usuario que quiero comprobar si la fila con THE_ID = 1000
está bloqueado. Si intento una actualización o algo, el segundo usuario se bloquea y sigue esperando (no quiero eso).
también he tratado de ejecutar la siguiente consulta con el segundo usuario:
select * from SOME_TABLE where THE_ID = 1000 for update NOWAIT;
Ya que no puedo colocar dos enganches en la misma fila se producirá un error. Y lo hace. Obtengo un "ORA-00054: recurso ocupado y adquiero con el error especificado NOWAIT". ¿Puedo contar siempre con este error para verificar la presencia del bloqueo, o hay una manera más simple y más clara de determinar si una fila está bloqueada?
Gracias!
que debiera obtener este error "ORA-00054: recurso ocupado y adquirir con NOWAIT especificado" - ¿está seguro de que su usuario puede ver la tabla? – SeriousCallersOnly
@ SeriousCallersOnly: Gracias, de hecho tengo el "ORA-00054: recurso ocupado y adquiero con el error especificado NOWAIT". El ORA-00942 fue lanzado por otra capa de mi aplicación. Lo siento por eso. Editaré la pregunta. –