2012-10-19 42 views
2

我使用oracle11g數據庫。我有一個名爲phonenumbers_tbl的表格,並且我在該表格上執行了DROP命令。但它返回錯誤resource busy and acquire with NOWAIT specified or timeout expired。之後,我改變了命令alter session set ddl_lock_timeout = 600的會話,並再次嘗試刪除表。不過還是這個錯誤再次堅持錯誤ORA-00054資源忙和獲取與NOWAIT指定或超時在oracle11g過期

回答

3

首先嚐試執行此,檢查從other sessionyour 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 
1

是的!最後,我得到了一個解決方案,將表phonenumber_tbl移動到另一個表空間system並刪除表。

+1

:這不是解決方案,它的替代:),請嘗試找出爲什麼這是給你nowait錯誤。 –

相關問題