停止存儲過程
① 存儲過程的測試一直在執行,關不掉
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#',用於停止這個回話,同時也終止了存儲過程
