IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]oracle11g plsql调试存储过程卡死的处理技巧

    mchdba发表于 2016-07-22 21:22:54
    love 0

     

    >> 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>

     



沪ICP备19023445号-2号
友情链接