我在Oracle SQL Developer中面临一个不寻常的问题。当我尝试编译存储过程时,它将挂起Oracle SQL DEveloper屏幕,除了杀死SQL开发人员实例并重新启动之外,我无法执行任何事件。

但是同样的问题。有人遇到这样的问题吗?我是oracle新手。

这里有一些问题的补充,我等了5到10分钟,却得到了这个错误

ORA-04021 timeout occurred while waiting to lock object

但是我是唯一从事此Oracle实例工作的人

最佳答案

您先前创建的被杀死的程序的尝试之一仍然停留并处于事件状态。您需要使用http://www.oracle-base.com/articles/misc/KillingOracleSessions.php终止该Oracle session

该错误的另一个原因是,您试图编译该过程时,数据库中的另一个进程正在运行该过程。使用此查询可以确定哪个进程正在运行它:

select sess.sid, sess.username, sql_text
from v$sqlarea sqlarea, v$session sess
where sess.sql_hash_value = sqlarea.hash_value
and   sess.sql_address    = sqlarea.address
and   sess.username is not null;

10-07 22:12