ORA-00054 锁表处理
1. 现象
删除表的时候,提示资源繁忙。
SQL> drop table SALEMAN;
drop table SALEMANORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
2.处理
(1)锁对象
查询锁对象。
SQL> select t.OBJECT_ID,t.SESSION_ID,t.ORACLE_USERNAME from v$locked_object t;7454 5 SCOTT97645 1344 SCOTT
(2)数据库对象类型
在数据库对象表中确认锁对象类型:
SQL> select l.object_id, t.object_name, t.object_type2 from dba_objects t, v$locked_object l3 where t.object_id = l.object_id ;7454 PLAN_TABLE$ TABLE97645 SALEMAN TABLE
97645 是对应的SALEMAN表,对应的SESSION_ID是1344 。
(3)解锁对象
SESSION_ID是1344 ,查询sid和 serial#值:
SQL> select sid, serial#, machine, program from v$session where sid = 1344 ;1344 56470 WORKGROUP\THINKPAD plsqldev.exe
sid和 serial#值,解锁对象。
SQL> alter system kill session '1344,56470' ;System altered
删除表成功:
SQL> drop table SALEMAN;Table dropped