ORA-00054:resource busy and acquire with NOWAIT specified

本文详细介绍了在Oracle数据库中遇到删除表时因资源争用而出现ORA-00054错误的情况,通过查找并终止持有锁的会话解决了问题。包括使用SQL命令查看锁定对象、确认锁定表、找到锁定会话并终止其操作等步骤,最终成功删除了目标表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

偶然一次删除表的时候,遇到

drop table t purge;

ORA-00054:resource busy and acquire with NOWAIT specified


出现这种情况,由于另有其他用户修改了表的数据,未提交,导致资源争用。

解决办法:找到另外一个持有锁的用户,将其session干掉。


conn / as sysdba


 Select * From V$locked_Object;

 XIDUSN    XIDSLOT     XIDSQN  OBJECT_ID SESSION_ID  ORACLE_USERNAME   OS_USER_NAME PROCESS                LOCKED_MODE

19    31    221    74879    12    SCOTT    JIANG\admin    3208:5768    3


查看object_id=74879 是不是为锁定的表

select * from  dba_objects where object_id=74879;

SCOTT    T        74879    74879    TABLE    15-7月 -13    15-7月 -13    2013-07-15:11:47:21    VALID    N    N    N    1   

确定为我们想要删除的T表。

然后,找到持有该表上的锁的session

select sid,serial#,username,status,event from v$session where sid=12;

sid,serial#,username,status,event

12    51    SCOTT    INACTIVE    SQL*Net message from client


alter system kill session '12,51'
system KILL已变更。


conn  scott/tiger

drop table t purge;

table T已删除。

完成删除。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值