在我们工作中可能会遇到表被锁住的情况,一般用于for update的时候忘记提交事务导致
这个时候要想修改或者删除数据必须要解除被锁的的表才可以。
解决方法就是通过结束掉锁表的用户。
首先查看被锁的表和session_id
执行这条sql
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id ;
可以看到我们SIBOWENR表被锁住了
接下来--查看被锁表的sid对应的SERID
SELECT sid, serial#, username, osuser FROM v$session;
拿到SID‘181’的SERAL后我们直接结束掉这个进程就可以了
--结束进程 sid,SERID
alter system kill session'181,2051';
这样就把这个被锁的用户进程终止掉了,表也被解锁了。
网友评论