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

问题描述 投票:0回答:1

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

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

oracle toad locks
1个回答
1
投票

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

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.