CREATE OR REPLACE PROCEDURE CXY_CCGC_TEST4_P
AS
x NUMBER;
BEGIN
--使用CONTINUE的時候,本次循環後面的代碼部分不再執行,轉而執行本循環的下一次循環。
--可能由于oracle的版本問題而導緻一些關鍵字不可以使用;在oracle11g中增加CONTINUE關鍵字 10g可以用GOTO來實作
--本人未使用11g,使用11g的朋友試一下
DBMS_OUTPUT.put_line('=============================================CONTINUE');
for i in 1..4 loop
DBMS_OUTPUT.put_line('使用CONTINUE --- 第' || i || '次循環Start');
IF i = 3 THEN
--CONTINUE;
GOTO next;
END IF;
DBMS_OUTPUT.put_line('使用CONTINUE --- 第' || i || '次循環。。。執行中。。。');
<<next>> --goto跳轉點
DBMS_OUTPUT.put_line('使用CONTINUE --- 第' || i || '次循環End');
end loop;
DBMS_OUTPUT.put_line('=============================================GOTO');
x:=1;
<<repeat_loop>> --循環點
DBMS_OUTPUT.PUT_LINE('使用GOTO --- 第' || X || '次循環');
x:=x+1;
IF X<=3
THEN
GOTO repeat_loop; --當x的值小于9時,就goto到repeat_loop
END IF;
DBMS_OUTPUT.put_line('=============================================EXIT');
--使用EXIT的時候,跳出本循環。
for i in 1..3 loop
DBMS_OUTPUT.put_line('使用EXIT --- 第一層 第' || i || '次循環');
for j in 1..10 loop
DBMS_OUTPUT.put_line('使用EXIT --- 第二層 第' || j || '次循環');
IF j = 2 THEN
EXIT;--跳出本循環轉而執行本循環的上一級循環的下一次循環
END IF;
end loop;
--oracle中取餘是用函數mod(numer1,number2),
IF mod(i, 2) = 0 THEN
EXIT;--跳出本循環
END IF;
end loop;
DBMS_OUTPUT.put_line('=============================================RETURN');
--使用RETURN的時候,直接跳出存儲過程或者函數。
for i in 1..6 loop
DBMS_OUTPUT.put_line('使用RETURN --- 第' || i || '次循環');
IF i = 3 THEN
RETURN;
END IF;
end loop;
DBMS_OUTPUT.put_line('==========跳出存儲過程,該行不輸出===========校驗');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('sqlcode : ' || sqlcode);
DBMS_OUTPUT.put_line('sqlerrm : ' || sqlerrm);
ROLLBACK;
END CXY_CCGC_TEST4_P;
--調用
BEGIN
CXY_CCGC_TEST4_P();
END;
調用該存儲過程輸出如下:

希望對你有幫助,祝你有一個好心情,加油!
若有錯誤、不全、可優化的點,歡迎糾正與補充!