PL/SQL调试存储过程卡死

时间:2024-04-07 20:52:13

    有多次进行TEST调试存储过程,在某一个环境动不了,然后卡住,plsql界面进入假死状态了,而这个时候只有在windows里面的任务管理器里面强行关闭plsql的后台进程后,然后再次登录打开plsql,才能操作。但是这种强性杀死plsql进程后重新登录plsql的做法不能解决问题,因为你上次调试存储过程的被卡住的进程依然存在后台等待,并且会再次影响你第二次进行存储过程调试。

PS:plsql假死如下图:

PL/SQL调试存储过程卡死

第一种办法(PLSQL解决)

此时,重新打开第二个plsql窗口,使用dba账号登录,进入“Tools”--> “Sessions…”界面,可以看到所有的sessions会话进程,如下所示:

PL/SQL调试存储过程卡死

图(2)查看当前所有sessions

然后看到“Action”一栏目,看到有Test字样的,再看“Machine”确定是你操作的电脑发起的session,然后选中,右键弹出选中“kill”命令,然后选中“Yes”清除这条调试存储过程的会话即可,如下图所示:

PL/SQL调试存储过程卡死

图(3) 清除session


第二种办法(SQL)

执行sql语句:select * from v$session t where t.ACTION like'%Test%';找到当前进行存储过程调试的session,然后执行kill命令:

PL/SQL调试存储过程卡死

图(4) SQL查询出session

 

从图中可以看到 知道TEST被锁的用户为powerdesk,sid为1282,serial#为128, 执行alter system kill session'1282,128';清除session

SQL> altersystemkillsession'1282,128';                                                                                                                                                                                                                                          

System altered

SQL>