如何区别存储过程中的EXIT与RUTURN

第一步:测试存储过程中使用EXIT

create or replace procedure P_TEST_RETURN_EXIT is

i number:=1;
j number:=1;
begin

for i in 1..20 loop

dbms_output.put_line('输出数据='||i);
if (i>10) then
EXIT;
end if;

end loop;


for j in 1..20 loop

dbms_output.put_line('输出数据='||j);
end loop;


end P_TEST_RETURN_EXIT;

测试结果:

输出数据=1
输出数据=2
输出数据=3
输出数据=4
输出数据=5
输出数据=6
输出数据=7
输出数据=8
输出数据=9
输出数据=10
输出数据=11
输出数据=1
输出数据=2
输出数据=3
输出数据=4
输出数据=5
输出数据=6
输出数据=7
输出数据=8
输出数据=9
输出数据=10
输出数据=11
输出数据=12
输出数据=13
输出数据=14
输出数据=15
输出数据=16
输出数据=17
输出数据=18
输出数据=19
输出数据=20

第二步:测试存储过程中使用RETURN

create or replace procedure P_TEST_RETURN_EXIT is

i number:=1;
j number:=1;
begin

for i in 1..20 loop

dbms_output.put_line('输出数据='||i);
if (i>10) then
RETURN;
end if;

end loop;


for j in 1..20 loop

dbms_output.put_line('输出数据='||j);
end loop;


end P_TEST_RETURN_EXIT;

测试结果:

输出数据=1
输出数据=2
输出数据=3
输出数据=4
输出数据=5
输出数据=6
输出数据=7
输出数据=8
输出数据=9
输出数据=10
输出数据=11

结论:

存储过程的循环中EXIT退出本次循环程序块,但会继续执行存储过程的其它程序块。

存储过程的循环中RETURN退出本次循环程序块,同时退出整个存储过程,其它程序块不会执行。

原文地址:https://www.cnblogs.com/HondaHsu/p/3118502.html