oracle 解锁表

操作的前提 用 sys 用户 以 SYSDBA 角色登录

第一种解锁方式

1.查询被锁的表

select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;

2.查询那个session引起表被锁

select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;

select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;

3.解锁表

ALTER system kill session '614, 50281';

第二种解锁表的方式

1. 查看被锁的表

SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name
 FROM v$process p, v$session a, v$locked_object b, all_objects c
 WHERE p.addr = a.paddr 
 AND a.process = b.process
 AND c.object_id = b.object_id;

2.批量解锁

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;
复制代码
 

觉得文章实用,请在右上方点个赞

复制代码
 
相关推荐
仰望大佬00735 分钟前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
学不透java不改名40 分钟前
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
数据库
一只路过的猫咪41 分钟前
thinkphp6使用MongoDB多个数据,聚合查询的坑
数据库·mongodb
呼啦啦啦啦啦啦啦啦2 小时前
【MySQL篇】事务的认识以及四大特性
数据库·mysql
van叶~2 小时前
探索未来编程:仓颉语言的优雅设计与无限可能
android·java·数据库·仓颉
溟洵4 小时前
Linux下学【MySQL】表中插入和查询的进阶操作(配实操图和SQL语句通俗易懂)
linux·运维·数据库·后端·sql·mysql
轻口味4 小时前
【每日学点鸿蒙知识】DevEco、HDC报错、C调用数据库、测试工具、codegen
数据库·华为·harmonyos
dingdingfish4 小时前
JSON 系列之2:JSON简单查询
oracle·json·database·19c·23ai
乘风御浪云帆之上6 小时前
数据库操作【JDBC & HIbernate & Mybatis】
数据库·mybatis·jdbc·hibernate
dazhong20127 小时前
PLSQL 客户端连接 Oracle 数据库配置
数据库·oracle