位置:首页 > 数据库 > PL/SQL在线教程 > PL/SQL嵌套循环

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.