1.开一个会话session1
sql>select sid from v$mystat where rownum=1;
SID
158
sql>create table t(x int primary key);
table created
sql>insert into t values(1);
commit;
sql>update t1 set t=10 where x=1;
2.再开一个会话
sql>select sid from v$mystat where rowunm=1;
SID
157
sql>update t1 se x=10 where x=1;
这个时候session2被session1锁住
3、执行以下语句查看是哪个进程和序列锁住了表
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid
4、执行下面的语句,将改锁表的进程和序列杀掉了
alter system kill session '1020,38953' --(1020,就是执行第一步语句得到的sid字段值,38953就是serial#字段值)
参考博文:http://www.cnblogs.com/srsee/archive/2013/05/10/infi0510_2.html
总结
以上是编程之家为你收集整理的解除Oracle被锁的表全部内容,希望文章能够帮你解决解除Oracle被锁的表所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。