加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle包编译,调用或调试Package时卡死问题

发布时间:2020-12-12 16:22:10 所属栏目:百科 来源:网络整理
导读:网上百度到了出现这种现象原因,说的好像还挺有道理的,所以就copy过来: 在对Procedure、Function或Package进行Debug时,如果长时间没有操作,公司的防火墙会杀掉会话连接。这个时候数据库不会主动的释放会话的资源,如果再次对Procedure、Function或Packag

网上百度到了出现这种现象原因,说的好像还挺有道理的,所以就copy过来:

在对Procedure、Function或Package进行Debug时,如果长时间没有操作,公司的防火墙会杀掉会话连接。这个时候数据库不会主动的释放会话的资源,如果再次对Procedure、Function或Package进行Debug的话,就会产生等待。因为被防火墙杀掉的会话还在运行着上次的Debug,会有锁的存在。只用等到数据库回收上次Debug的会话资源或者DBA手动将会话KILL掉。


手动kill session的方法:

1.SELECT*FROMV$DB_OBJECT_CACHEWHERENAME=upper('PROCEDURE_NAME')ANDLOCKS!='0';
注意:PROCEDURE_NAME为存储过程的名称。
2.SELECTSIDFROMV$ACCESSWHEREOBJECT='PROCEDURE_NAME';
3.SELECTSID,SERIAL#,PADDRFROMV$SESSIONWHERESID='SID';
4.ALTERSYSTEMKILLSESSION'SID,SERIAL#'IMMEDIATE;
或者
selectvs.SID,vs.SERIAL#,vs.PADDR,'ALTERSYSTEMKILLSESSION'''||vs.SID||','||vs.SERIAL#||
'''IMMEDIATE;'
fromV$ACCESSva,V$SESSIONvs
where1=1
andva.SID=vs.SID
andva.OBJECT=upper('SZA_PA_BGT_ADJ_COMMON_PUB')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读