私はoracle11gデータベースを使用しています。という名前のテーブルがあり、そのテーブルでコマンドphonenumbers_tbl
を実行しました。DROP
しかし、それはエラーを返していますresource busy and acquire with NOWAIT specified or timeout expired
。その後、コマンドでセッションを変更し、alter session set ddl_lock_timeout = 600
もう一度テーブルを削除しようとしました。しかし、それでもこのエラーは再び持続しています
27348 次
3 に答える
3
最初にこれを実行してみて、誰かがそのテーブルにロックをかけているother session
かどうかを確認します。そのテーブルにロックをかけている場合は、実行してみてください。ロックをかけている場合は、権限があるかどうかを尋ねてください。そして、テーブルを削除します。your session
you
commit/rollback
someone else
him/her
kill his session
select session_id "sid",SERIAL# "Serial",
substr(object_name,1,20) "Object",
substr(os_user_name,1,10) "Terminal",
substr(oracle_username,1,10) "Locker",
nvl(lockwait,'active') "Wait",
decode(locked_mode,
2, 'row share',
3, 'row exclusive',
4, 'share',
5, 'share row exclusive',
6, 'exclusive', 'unknown') "Lockmode",
OBJECT_TYPE "Type"
FROM
SYS.V_$LOCKED_OBJECT A,
SYS.ALL_OBJECTS B,
SYS.V_$SESSION c
WHERE
A.OBJECT_ID = B.OBJECT_ID AND
C.SID = A.SESSION_ID
ORDER BY 1 ASC, 5 Desc
于 2012-10-19T09:02:58.347 に答える
1
はい !最後に、テーブルphonenumber_tbl
を別のテーブルスペースに移動してテーブルをsystem
削除するという解決策を得ました。
于 2012-10-19T09:03:28.033 に答える