如何终止正在运行的Oracle存储过程

9

我创建了一个 Oracle 存储过程。当我在 SQL Developer 中执行它时,有时会陷入无限循环中。它不断地生成日志文件。我该如何终止这个正在运行的存储过程? 我通过 services.msc 停止了 Oracle 服务。当我再次启动它时,日志文件仍然在生成。我认为那个存储过程仍在运行。 我该如何终止这些存储过程。


可能是重复的问题:如何终止正在运行的SELECT语句 - Ben
2个回答

17

使用 v$session 来识别您的会话(挂起)

select sid, serial#, status from v$session where USERNAME='NAME';

然后使用以下方式终止它:

ALTER SYSTEM KILL SESSION 'SID,#SERIAL';

1
我没有数据库管理员权限。我可以访问任务管理器和服务。那么有没有办法从任务管理器或服务中终止它? - Andromeda
1
请询问DBA(或具有数据库权限的人)停止会话,仅杀死客户端进程并不总是一个好主意。 - BigMike
@vikiiii,请检查这个查询。我在我的本地数据库中创建了一个无限循环的过程,我拥有管理员权限。该过程正在运行,并且我使用我的用户名执行了此查询。它没有返回任何结果。 - Andromeda

0
ALTER SYSTEM KILL SESSION 

但是您必须检索会话 ID 并具有权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接