一、引言 工作中有次修改表sj_affair中的数据,需要禁用该表上的触发器。结果无法禁用,报如下错误: ORA-00054: resource busy and acquire with NOWAIT specified 很明显,是该表被锁定了,于是打算kill掉锁住该表的会话。步骤如下: 1.查出锁住该表的会话id,serial# SELECT o.object_name,s.sid, s.serial# FROM v$locked_object l, dba_objects o, v$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid AND o.object_name='SJ_AFFAIR'; 2.kill掉该会话 alter system kill session 'sid, serial#'; kill掉会话之后再次查询,发现该表上已经没有锁了。于是再次试图禁用触发器,结果奇怪了,还是无法禁用。 是不是锁又恢复了呢?再次查询,发现没有锁。这是为什么呢? 在网上搜了很多,发现一条有用的信息,作者查询锁用的是v$lock视图,而不是v$locked_object视图。改成查询v$locd视图:
v$lockv和$locked_object的区别url: http://blog.sina.com.cn/s/blog_62defbef0101pgvo.html一、引言 工作中有次修改表sj_affair中的数据,需要禁用该表上的触发器。结果无法禁用,报如下错误:ORA-00054: resource busy and acquire with NOWAIT sp