停止存储过程
① 存储过程的测试一直在执行,关不掉
1、存储过程中是否有 LOOP ?
如果有 的在end loop 添加 EXIT WHEN 游标名%NOTFOUND (意思是如果没有这个游标,就跳出)
2、没有loop 的话
手动停止掉当前的存储过程吧。语句如下:
--先查运行的存储过程sid
select /*rule*/ sid from v$access where object='存储过程名'
--通过sid 找到serial
select sid ,serial#,paddr from v$session where sid='上一句查到的sid'
--kill 掉存储过程
alter system kill session 'sid','serial#'
② 如何强行中止存储过程的执行
找你的DBA把你这个session给KILL掉
③ 存储过程执行到某步时停止存储过程。
想要当i等于10000时停下这个存储过程,不再执行了。
if mod(i,1000)=0 then commit;
后面增加一句话
if i = 10000 then GOTO l_Finish;
end A;
前面增加一句话
<<l_Finish>>
④ oracle 如何终止存储过程的运行!
select * from v$access a where object like '存储过程名%' --存储过程名为大写字母
select * from v$session where sid=74 --74为上一个查询得到的SID值,可能是多个,这里找到他们对应的serial#值
alter system kill session '74,118' --参数为'sid,serial#',用于停止这个回话,同时也终止了存储过程
