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

在sql plus中引用oracle的存储过程,存储过程中使用到了临时表,在sql plus 未关闭的情况下,在报表中调用同一个存储过程时,提示ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效。将sql plus关闭后,报表正常。

同事在测试环境创建一个表的索引时,抛出ORA-00054的错误
create index picture_user_idx on picture (userid);  

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

很明显这张表被锁了,我让他过两分钟在试试。可过了一会去执行还是抱同样的错。只能去看看谁锁住这张表了。

SELECT
 s.username,
decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
  o.owner,
 o.object_name,
 o.object_type,
 s.sid,
 s.serial#
FROM gv$session s, gv$lock l, dba_objects o
WHERE l.sid = s.sid
  AND l.id1 = o.object_id(+)
  AND s.username is NOT NULL
and object_name='TCOM_TRUNKORDER';


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

#kill -9 234563

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

Table altered


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值