› Fóruns › Banco de dados Oracle › Como saber se um determinado registro está travado › Como saber se um determinado registro está travado
SELECT substr(DECODE(request,0,’Holder: ‘,’Waiter: ‘)||sid,1,12) sess,
id1, id2, lmode, request, type, inst_id
FROM GV$LOCK
WHERE (id1, id2, type) IN
(SELECT id1, id2, type FROM GV$LOCK WHERE request>0)
ORDER BY id1, request;
aqui mostrará o usuário bloqueado e quem tá bloqueando.
select do.owner
, do.object_name
, row_wait_obj#
, row_wait_file#
, row_wait_block#
, row_wait_row#
, dbms_rowid.rowid_create (1, ROW_WAIT_OBJ#, ROW_WAIT_FILE#,
ROW_WAIT_BLOCK#, ROW_WAIT_ROW#)
from gv$session s
, dba_objects do
where sid=899
and s.ROW_WAIT_OBJ# = do.OBJECT_ID
/
aqui vc pega os rowid’s bloqueados pelo sid que está bloqueado ou que desejar.
select * from table where rowid = (rowid);
aqui o sql fala por sí.