Pular para o conteúdo

Fóruns Banco de dados Oracle Como saber se um determinado registro está travado Como saber se um determinado registro está travado

#101792
vieri
Participante

    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í.