您的位置:首页 > 大数据 > 人工智能

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

2010-12-15 13:00 323 查看
同事在测试环境修改一个表的字段长度时,抛出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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐