分享

ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效 -...

 wangxq 2011-04-07

同事在测试环境修改一个表的字段长度时,抛出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

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lwei_998/archive/2010/12/15/6077427.aspx

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多