1

テーブルを削除しようとすると、このエラーが発生します。

私はググってググって、自分の能力を最大限に発揮するために可能なすべての解決策を試しましたが、これまでのところどれもうまくいきませんでした.

これは私が得ているエラーです:

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 自体についてそれほど詳しくないので、できる限り詳しく説明してください。

ありがとうございました!

4

1 に答える 1

2

ORA-00054: リソースがビジーで、NOWAIT を指定して取得しています

テーブルを操作したセッションがあること、つまりDMLステートメントが実行されたことは明らかですが、 COMMITまたはROLLBACKは発行されませんでした。また、別のセッションからテーブルを削除しようとしています。

複数のタブを開く場合、つまり複数の 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 session# 1 のいずれかです。

セッション#1

SQL> commit;

Commit complete.

SQL>

セッション#2

SQL> drop table t purge;

Table dropped.

SQL>
于 2015-04-13T11:45:04.880 に答える