在SQL Developer中获取ORA-00054错误

时间:2015-04-13 10:37:02

标签: sql oracle ora-00054

我在尝试DROP一个表时遇到此错误。

我已经用Google搜索并搜索了所有可能的解决方案,但到目前为止,这些解决方案都没有对我有效。

这是我得到的错误:

Error starting at line : 1 in command -
DROP TABLE INTEREST
Error report -
SQL Error: ORA-00054: resource busy and acquire with NOWAIT specified
00054. 00000 -  "resource busy and acquire with NOWAIT specified"
*Cause:    Resource interested is busy.
*Action:   Retry if necessary.

请记住,我对SQLDeveloper或SQL本身并不了解,所以请尽量详细说明。

谢谢!

1 个答案:

答案 0 :(得分:1)

  

ORA-00054:资源繁忙并使用NOWAIT指定获取

错误很明显,有一个操作表的会话,即执行了 DML 语句,但是没有 COMMIT ROLLBACK < / strong>发布。而且,您正在尝试 DROP 来自另一个会话的表格。

请注意,当您打开多个标签时,即打开多个SQL工作表时,会有不同的会话

重现并解决问题的小型演示:

会话#1

SQL> create table t(a number);

Table created.

SQL> insert into t select 1 from dual;

1 row created.

SQL>

所以,我在SESSION#1中做了一个INSERT并且还没有提交它。

会话#2

SQL> drop table t purge;
drop table t purge
           *
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired


SQL>

所以,当我试图在会话2中删除表时,我收到了错误。

要修复它,请执行COMMIT或ROLLBACK会话#1。

会话#1

SQL> commit;

Commit complete.

SQL>

会话#2

SQL> drop table t purge;

Table dropped.

SQL>