为了账号安全,请及时绑定邮箱和手机立即绑定

请问oracle LOOP会锁表吗?

请问oracle LOOP会锁表吗?

皈依舞 2018-07-16 14:12:44
FOR rs IN (SELECT * FROM EA_表) LOOPEND LOOP;在遍历的过程中,会锁表或者锁行吗,会不会影响其他线程的查询
查看完整描述

1 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

-- 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. 查看是哪个进程锁的
SELECT sid, serial#, username, status, osuser FROM v$session where serial# = '11016'

-- 3. 杀掉这个进程
alter system kill session '72,11016';

-- 4.批量解锁
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;

查看完整回答
反对 回复 2018-07-29
  • 1 回答
  • 0 关注
  • 835 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信