在编译失效对象的时候,卡在一个包上过不去,先终止编译过程,处理问题
处理方式:
--查V$DB_OBJECT_CACHE
SELECT * FROM V$DB_OBJECT_CACHE WHERE name='PKG_NAME' AND LOCKS!='0';
(PKG_NAME 为存储过程的名称。)
发现LOCKS=1 ,说明有另外的连接锁住了这个包
--按对象查出sid的值
select /*+ rule*/ SID from V$ACCESS WHERE object='PKG_NAM';
(我的环境是rac,查看gv$acesss视图)
--查sid,serial#,(在上面视图查询出来的对应节点上执行)
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='$sid';
--杀死锁包进程(在上面视图查询出来的对应节点上执行)
alter system kill session 'sid值,serial#值' immediate;
版权声明:本文为博主原创文章,未经博主允许不得转载。
存储过程






