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;
调用该存储过程输出如下:

希望对你有帮助,祝你有一个好心情,加油!
若有错误、不全、可优化的点,欢迎纠正与补充!