ORACLE查询锁表记录并释放

本文介绍了一种使用SQL语句批量查询并释放数据库中被锁定的表记录的方法。通过结合使用v$locked_object, dba_objects及v$session视图,可以有效地找出并解除所有被锁定的表,从而解决数据库锁死问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--查询锁表记录

select b.owner TABLEOWNER, b.object_name TABLENAME, c.OSUSER LOCKBY,
c.USERNAME LOGINID, c.sid SID, c.SERIAL# SERIAL
from v$locked_object a,dba_objects b, v$session c 
where b.object_id = a.object_id AND a.SESSION_ID =c.sid

--释放锁表记录

alter system kill session 'SID, SERIAL';


--批量释放锁表记录

declare cursor mycur is
select b.sid,b.serial#
  from v$locked_object a,v$session b
  where a.session_id = b.sid group by b.sid,b.serial#;
begin
  for cur in mycur 
    loop
      execute immediate ( 'alter system  kill session  '''||cur.sid || ','|| cur.SERIAL# ||''' ');
    end loop;
end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值