ORA-00054: 資源正忙, 但指定以 NOWAIT 方式獲取資源, 或者超時失效


ORA-00054: 資源正忙, 但指定以 NOWAIT 方式獲取資源, 或者超時失效

同事在測試環境修改一個表的字段長度時,拋出ORA-00054的錯誤

 

SQL> alter table prp_emp  modify(ename varchar2(20));

alter table prp_emp modify(ename varchar2(20))

ORA-00054: 資源正忙, 但指定以 NOWAIT 方式獲取資源, 或者超時失效

 

很明顯這張表被鎖了,我讓他過兩分鍾在試試。

可過了一會去執行還是抱同樣的錯。只能去看看誰鎖住這張表了。

 

SQL> SELECT /*+ rule */
  2         s.username,
  3         decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
  4         o.owner,
  5         o.object_name,
  6         o.object_type,
  7         s.sid,
  8         s.serial#
  9    FROM gv$session s, gv$lock l, dba_objects o
 10   WHERE l.sid = s.sid
 11     AND l.id1 = o.object_id(+)
 12     AND s.username is NOT NULL
 13     AND O.OWNER='REPORT'
 14  ;

USERNAME  LOCK_LEVEL OWNER    OBJECT_NAME   OBJECT_TYPE   SID    SERIAL#
---------     -----------------   ----------    -------------         -----------          -----   ----------
REPORT    TABLE LOCK     REPORT    PRP_EMP           TABLE               140          417

 

果然是這個表被另一個同事鎖住了,而這個人又不在工位上。斷開了他的session后,很快執行完畢。

 

SQL> alter system kill session   '140,417';

System altered

 

 

SQL> alter table prp_emp modify(ename varchar2(20));

Table altered
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM