PL/SQL嵌套循環

PL/SQL允許使用一個循環內嵌套另一個循環。下面的內容展示幾個例子來說明這個概念。

在PL/SQL嵌套基本LOOP語句的語法如下:

LOOP
Sequence of statements1
LOOP
Sequence of statements2 END LOOP; END LOOP;

在PL/SQL 循環FOR語句嵌套的語法如下:

FOR counter1 IN initial_value1 .. final_value1 LOOP
sequence_of_statements1 FOR counter2 IN initial_value2 .. final_value2 LOOP
sequence_of_statements2 END LOOP; END LOOP;

在Pascal嵌套WHILE 循環語句的語法如下:

WHILE condition1 LOOP
sequence_of_statements1 WHILE condition2 LOOP
sequence_of_statements2 END LOOP; END LOOP;

示例:

下面的程序使用一個基本嵌套循環,找出2-100中的素數:

DECLARE i number(3); j number(3); BEGIN i := 2; LOOP
j:= 2; LOOP exit WHEN ((mod(i, j) = 0) or (j = i)); j := j +1; END LOOP; IF (j = i ) THEN dbms_output.put_line(i || ' is prime'); END IF; i := i + 1; exit WHEN i = 50; END LOOP; END; /

當上述代碼在SQL提示符執行時,它產生了以下結果:

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime

PL/SQL procedure successfully completed.