This was tested on Oracle 11.2. PL/SQL loops can have labels, which must appear just before the LOOP statement. They must be undeclared identifiers enclosed by double angle brackets. If you wish, you can repeat the label at the end of the loop:
SQL> DECLARE
2 X NUMBER;
3 Y NUMBER;
4 BEGIN
5 X := 1;
6 <<OUTER_LOOP>>
7 LOOP
8 Y := 1;
9 <<INNER_LOOP>>
10 LOOP
11 DBMS_OUTPUT.PUT_LINE('X = '||X||' and Y = '||Y);
12 Y := Y + 1;
13 EXIT WHEN Y > 2;
14 END LOOP INNER_LOOP;
15 X := X + 1;
16 EXIT WHEN X > 2;
17 END LOOP OUTER_LOOP;
18 END;
19 /
X = 1 and Y = 1
X = 1 and Y = 2
X = 2 and Y = 1
X = 2 and Y = 2
PL/SQL procedure successfully completed.
SQL> DECLARE
2 X NUMBER;
3 Y NUMBER;
4 BEGIN
5 X := 1;
6 <<OUTER_LOOP>>
7 LOOP
8 Y := 1;
9 LOOP
10 DBMS_OUTPUT.PUT_LINE('X = '||X||' and Y = '||Y);
11 Y := Y + 1;
12 EXIT WHEN Y > 2;
13 EXIT OUTER_LOOP WHEN X + Y > 6;
14 END LOOP;
15 X := X + 1;
16 END LOOP;
17 END;
18 /
X = 1 and Y = 1
X = 1 and Y = 2
X = 2 and Y = 1
X = 2 and Y = 2
X = 3 and Y = 1
X = 3 and Y = 2
X = 4 and Y = 1
X = 4 and Y = 2
X = 5 and Y = 1
PL/SQL procedure successfully completed.
SQL>
No comments:
Post a Comment