oracle如何杀掉正在运行的存储过程

发布时间:2020-08-20编辑:脚本学堂
本文介绍了oracle杀掉正在运行的存储过程的方法,有需要的朋友参考下。

如何kill掉一个正在运行的存储过程,了解一下v$access和v$session两个视图,下面两篇文章对这两个视图有更详细的介绍。
oracle中v$session视图介绍(转):oracle中v$session视图教程  
oracle中v$access视图介绍:oracle中v$access视图用法

1,利用下面sql语句查询出被锁的数据对象。
 

复制代码 代码示例:
SELECT * FROM v$access t WHERE t.OBJECT LIKE 'TEST_PROC%' ; --对象名为大写字母 

2,找到上面查询结果中的SID字段信息,并把其当做查询条件到v$session视图中查询。 
 

复制代码 代码示例:
SELECT * FROM v$session t WHERE t.SID = :V_SID ; --:V_SID根据上面查询结果获得 

3,在上面查询结果中找到SERIAL#字段,并根据SID和SERIAL#字段杀掉一个锁死的会话。
 

复制代码 代码示例:
ALTER SYSTEM KILL SESSION ':V_SID,:V_SERIAL#' ; --:V_SERIAL#根据上面查询结果获得