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

Can not compile a stored procedure because it seems to be locked

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

我尝试使用系统管理员查找锁,但无法找到正确的查询来获取锁。我想终止锁定存储过程的进程。

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

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

执行下面的脚本,它会打印出应该执行的 sqls。

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

注意:如果要kill所有会话,上面的脚本会准备好所有的小脚本。

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