无法编译存储过程,因为它似乎已被锁定

时间:2019-11-06 13:33:44

标签: oracle toad locks

我正在使用Oracle中的存储过程。我正在调试它,由于某种原因,Toad挂死了,我不得不结束该过程。结果,如果我想重新编译存储过程,它将永远像锁定对象时一样。

我尝试使用sysadmin查找锁,但无法找到正确的查询来获取锁。我想杀死锁定存储过程的进程。

1 个答案:

答案 0 :(得分:1)

检查状态以确认您的会话仍在运行,这不允许您重新编译过程:

SELECT sid, serial#, status FROM v$session;

执行以下脚本,该脚本将打印出应执行的sql。

SELECT 'ALTER SYSTEM KILL SESSION '''||sid||','||serial#||''' IMMEDIATE;' 
FROM v$session 
where username='YOUR_USER';

注意:如果您想终止所有会话,以上脚本将准备所有小脚本。

然后尝试重新编译您的存储过程。