3

私はoracle11gデータベースを使用しています。という名前のテーブルがあり、そのテーブルでコマンドphonenumbers_tblを実行しました。DROPしかし、それはエラーを返していますresource busy and acquire with NOWAIT specified or timeout expired。その後、コマンドでセッションを変更し、alter session set ddl_lock_timeout = 600もう一度テーブルを削除しようとしました。しかし、それでもこのエラーは再び持続しています

4

3 に答える 3

3

最初にこれを実行してみて、誰かがそのテーブルにロックをかけているother sessionかどうかを確認します。そのテーブルにロックをかけている場合は、実行してみてください。ロックをかけている場合は、権限があるかどうかを尋ねてください。そして、テーブルを削除します。your sessionyoucommit/rollbacksomeone elsehim/herkill 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 に答える