-------------------------------------------------------------------------------- -- -- File name: kglbroken.sql -- Purpose: -- Purpose: Report broken kgl locks for an object this can be used for -- identifying which sessions would get ORA-04068 "existing state -- of packages has been discarded" errors due a change -- in some object definition (such pl/sql package recompilation) -- -- Author: Tanel Poder -- Copyright: (c) http://www.tanelpoder.com -- -- Usage: @kglbroken -- -- -------------------------------------------------------------------------------- select decode(substr(banner, instr(banner, 'Release ')+8,1), '1', 256, 1) kglbroken_flg from v$version where rownum = 1 select sid,serial#,username,program from v$session where saddr in (select /*+ no_unnest */ kgllkuse from x$kgllk where kglnahsh in (select /*+ no_unnest */ kglnahsh from x$kglob where upper(kglnaown) like upper('&1') and upper(kglnaobj) like upper('&2') ) and bitand(kgllkflg,256)=256 ) /