02.02.2012

Аналог continue в циклах

Оператор continue в Oracle 11g отсутствует. Приведены 4 приема с аналогичным функционалом.
--лучший на мой взгляд
declare
continue exception;
begin
for i in 1..100 loop
begin
...
raise continue;
...
exception when continue then null;
end;
end loop;
end;
for
...
if then null; else
...
end if; -- до самого end loop
end loop;
DECLARE
CURSOR c_dept
IS
SELECT *
FROM dept;
BEGIN
for C1 IN c_dept loop
if C1.department_id = 60 then
GOTO lab1;
end if;
dbms_output.put_line(C1.department_name);
<>
null;
end loop;
END;
SQL> begin
2 for i in 1..10 loop
3 for k in 1..1 loop
-- здесь логика до continue
4 exit when i=5; -- замена continue
5 dbms_output.put_line(i); -- здесь логика после continue
6 end loop;
7 end loop;
8 end;
9 /

Комментариев нет :