GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Objetos em Lock no Oracle

Se você precisa compilar um objeto (uma Procedure, por exemplo), mas não consegue porque este está em uso, use os SELECTs abaixo para descobrir que SID está bloqueando sua tentativa de compilação.

SELECT /*+ ORDERED */ W1.SID WAITING_SESSION, H1.SID HOLDING_SESSION, W.KGLLKTYPE LOCK_OR_PIN, W.KGLLKHDL ADDRESS, DECODE(H.KGLLKMOD,0,'None',1,'Null',2,'Share',3,'Exclusive','Unknown') MODE_HELD, DECODE(W.KGLLKREQ,0,'None',1,'Null',2,'Share',3,'Exclusive','Unknown') MODE_REQUESTED 
FROM DBA_KGLLOCK W, DBA_KGLLOCK H, V$SESSION W1, V$SESSION H1 
WHERE (((H.KGLLKMOD != 0) AND (H.KGLLKMOD != 1) AND ((H.KGLLKREQ = 0) OR (H.KGLLKREQ = 1))) AND (((W.KGLLKMOD = 0) OR (W.KGLLKMOD= 1)) AND ((W.KGLLKREQ != 0) AND (W.KGLLKREQ != 1)))) AND W.KGLLKTYPE = H.KGLLKTYPE AND W.KGLLKHDL = H.KGLLKHDL AND W.KGLLKUSE = W1.SADDR AND H.KGLLKUSE = H1.SADDR;

Para saber o nome do objeto a partir do TO_ADDRESS, use este SELECT:

SELECT TO_NAME FROM V$OBJECT_DEPENDENCY WHERE TO_ADDRESS = '0700000010F62750';
Share

You may also like...

3 Responses

  1. […] Veja o Post completo no meu Blog de Oracle& […]

  2. Valeu portilho, esse script me salvou hoje : )

  3. Que coincidência Flavio, eu tinha acabado de utilizar este SELECT aqui na aula quando você colocou o comentário!

    Abraço !

Deixe um comentário

O seu endereço de e-mail não será publicado.