--查看被锁住的表session
1、找出object_id,这里可能会有多条记录,选择正确的
select * from dba_objects where object_name='表名'
2、根据object_id找出对应的sid
select * from v$lock l where l.ID1=object_id;
3、根据sid从session视图找出session相关信息
select * from v$session t where t.sid=sid
4、根据需要杀掉进程
alter system kill session ‘sid,#serial'
--查询调用存储过程的session
SELECT 'alter system kill session ' || '''' || sid || ',' || serial# || ''';' ,username,status
FROM gv$session
WHERE sid IN (SELECT /*+rule*/
sid
FROM gv$access t
WHERE t.owner = 'schema名'
AND OBJECT = '存储过程名’);
本文详细介绍了如何使用SQL查询解决被锁住的表问题,并通过示例代码展示了如何查找调用特定存储过程的session。通过执行一系列查询,可以定位到锁定表的会话并采取必要的措施解除锁定。
955

被折叠的 条评论
为什么被折叠?



