PL/SQL嵌套迴圈

PL/SQL允許在另一個迴圈中使用一個迴圈。 以下部分顯示了幾個例子來說明這個概念。

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

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

PL/SQL中嵌套FOR LOOP語句的語法如下 -

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;

PL/SQL中嵌套的WHILE LOOP迴圈語句的語法如下:

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

示例

以下程式使用嵌套的基本迴圈來求出2100之間的素數 -

SET SERVEROUTPUT ON SIZE 999999;
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;
/

在SQLPlus中執行上面示例代碼,得到以下結果 -

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 過程已成功完成。


上一篇: PL/SQL迴圈 下一篇: PL/SQL字串