oracle11g plsql调试存储过程卡死的处理技巧
>> PLSQL调试存储过程卡死
有多次进行TEST调试存储过程,在某一个环境动不了,然后卡住,plsql界面进入假死状态了,而这个时候只有在windows里面的任务管理器里面强行关闭plsql的后台进程后,然后再次登录打开plsql,才能操作。
但是这种强性杀死plsql进程后重新登录plsql的做法不能解决问题,因为你上次调试存储过程的ka住的进程依然存在后台等待,并且会再次影响你第二次进行存储过程调试,那么有没有办法彻底解决呢?
如下图,元芳,你怎么看?
PS:plsql假死图:
图(1) PLSQL假死图
第一种办法(PLSQL解决)
此时,重新打开第二个plsql窗口,使用dba账号登录,进入“Tools”--> “Sessions…”界面,可以看到所有的sessions会话进程,如下所示:
图(2)查看当前所有sessions
然后看到“Action”一栏目,看到有Test字样的,再看“Machine”确定是你操作的电脑发起的session,然后选中,右键弹出选中“kill”命令,然后选中“Yes”清除这条调试存储过程的会话即可,如下图所示:
图(3) 清除session
第二种办法(SQL)
执行sql语句:select * from v$session t where t.ACTION like'%Test%';找到当前进行存储过程调试的session,然后执行kill命令:
图(4) SQL查询出session
从图中可以看到 知道TEST被锁的用户为powerdesk,sid为1282,serial#为128, 执行alter system kill session'1282,128';清除session
SQL> altersystemkillsession'1282,128'; System altered
SQL> |