我正在使用Oracle中的存储过程。我正在调试它,由于某种原因,Toad挂死了,我不得不结束该过程。结果,如果我想重新编译存储过程,它将永远像锁定对象时一样。
我尝试使用sysadmin查找锁,但无法找到正确的查询来获取锁。我想杀死锁定存储过程的进程。
答案 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';
注意:如果您想终止所有会话,以上脚本将准备所有小脚本。
然后尝试重新编译您的存储过程。