一,continue
在oracle11g以前无法使用continue实现退出当前循环(11g中据说实现了),但是可以用以下方法模拟实现:
declare
--定义变量
begin
for i in 1..10 loop --真正的循环
for j in 1..1 loop --假循环,目的是模拟出continue效果
if i = 6 then
exit;--这个exit相当于continue
end if ;
dbms_output.put_line(i);
end loop ;
end loop;
dbms_output.put_line('over');
end ;
在oracle11g中可以用以下方式实现:
declare
--定义变量
begin
for i in 1..10 loop --真正的循环
if i = 6 then
continue;--用if语句和continue实现
end if ;
dbms_output.put_line(i);
end loop;
dbms_output.put_line('over');
end ;
declare
--定义变量
begin
for i in 1..10 loop --真正的循环
continue when i = 6;--用continue when实现
dbms_output.put_line(i);
end loop;
dbms_output.put_line('over');
end ;
二,break
oracle中并没有break关键字,但是可以用exit关键字来代替break实现退出循环
declare
--定义变量
begin
for i in 1..10 loop
if i > 6 then
exit ;--退出循环,相当于break
end if ;
dbms_output.put_line(i);
end loop ;
dbms_output.put_line('over');
end ;