欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle中表记录被另一个用户锁住

程序员文章站 2022-04-10 22:01:48
应用场景 在查询oracle表时,提示表记录被另一个用户锁住了 有可能是在使用了pl/sql工具后修改某个表记录时,加锁,或者发生故障异常退出,下次登录进去修改不了 查询锁 查询锁与session连接 查询数据库 锁的session 的sid、serial# 杀死此次连接session 杀死连接se ......

 

 

应用场景

在查询oracle表时,提示表记录被另一个用户锁住了

有可能是在使用了pl/sql工具后修改某个表记录时,加锁,或者发生故障异常退出,下次登录进去修改不了

 

查询锁

--查看数据库的锁的来源、类型等
select t.object_id, t.session_id, t.locked_mode from v$locked_object ;

 

查询锁与session连接

--查询 锁与session连接 用户名、serial#、时间
select s.username, s.sid, s.serial#, s.logon_time
from v$locked_object o, v$session s
where o.session_id = s.sid
order by s.logon_time ;

查询数据库 锁的session 的sid、serial# 杀死此次连接session

 

杀死连接session

-- 找到锁的连接 session 的sid、serial# 用于杀死session连接
alter system kill session 'sid,serial#' ;

-- 列如 sid=642 serial#=10439
alter system kill session '642,10439' ;

 

 

本人是由于使用了 select * from tablename for update ,后进行修改,然后pl/sql 就异常退出了

下次登录进去后,发现无法修改,报错提示:表记录被另一个用户锁住

用此方法可以实现解锁,本人亲测有效