Oracle存储过程编译卡死的解决方法

有时候多次test存储过程,plsql卡住不动(未响应),进入假死状态(如下图)。
有时候一个存储过程编译到一半,突然停掉,再编译发现也是卡卡住不动了。

卡死状态
于是,打开任务管理器杀死进程,重新登录,但是依然没有解决问题。
后查资料,发现是session被锁的原因,那么重启数据库问题就解决了。可是反复重启耗时费力,如何不重启数据库就解决呢?
下面给出两种方案:

1、方法一:PLSQL解决

Tool(工具)—session(会话)
在这里插入图片描述
在这里插入图片描述
可以筛选“My sessions ”,然后看到“Action”一栏目,找到运行的窗口,然后选中,右键弹出选中“关闭”命令,然后选中“是”清除这条调试存储过程的会话即可,如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、方法二:SQL命令

1、查找当前存储过程的sid,serial#

select * from v$session t where t.ACTION like'%xxx%';
或
先找到sid:
  select va.sid,va.OBJECT from v$access va where object like '%CREAT_%'     
再根据sid找serial#
	SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID= 1722

2、执行kill命令杀死session:

alter system kill session'1722,37';

现在就大功告成了,不用反复重启数据库了。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值