在实际操作中,常常会遇到锁表的情况,一般都是有不正当的操作或者程序中的bug造成的,当程序卡在那里的时候就有可能是锁表的情况
查看锁表的sql是:
select SESSION_ID ,o.* from v$locked_object l join dba_objects o on (l.OBJECT_ID=o.object_id)
如果你知道是某个表被锁了 可以直接上面的那句中添加
where o.object_name='USERS';
从上面的sql中得到所有锁表的sid 然后执行下面这句:
select * from v$session where sid=2
从得到的结果中
serial字段(这里是 7064)
然后执行:
alter system kill session '2 ,7064'; (2是sid,7064是serial#字段的值。)