PL/SQL循环 - PL/SQL教程

可能有一种情况,当需要执行的代码块的几个多次。在一般情况下,语句顺序执行:一个函数的第一条语句,首先执行,然后是第二个...等等。

编程语言提供了各种控制结构,允许更多复杂的执行路径。

循环语句可以让我们执行语句多次或一个组,下面是在大多数编程语言循环语句的一般形式:

Loop Architecture

PL/ SQL提供了循环以下类型的处理循环的要求。点击以下链接查看详细信息。

循环类型 描述
PL/SQL基础循环 在这个循环结构,语句序列封闭在LOOP和END LOOP语句之间。在每次迭代中,语句序列被执行,然后在循环的顶部恢复控制
PL/SQL WHILE循环 重复声明语句或一组,而给定的条件为真,它测试条件执行循环体前
PL/SQL FOR循环 执行语句序列多次和简写管理该循环变量的代码
PL/SQL内嵌循环 可以使用一个或多个循环中的任何其它基本回路,同时或循环

标记一个PL/SQL循环

PL/ SQL循环可以被标记。标记应该用双尖括号括起来(<<和>>),并出现在LOOP语句的开头。标签名称也可以出现在循环语句结束。可以使用标签在EXIT语句从循环退出。

下面的程序说明了这个概念:

DECLARE
   i number(1);
   j number(1);
BEGIN
   << outer_loop >>
   FOR i IN 1..3 LOOP
      << inner_loop >>
      FOR j IN 1..3 LOOP
         dbms_output.put_line('i is: '|| i || ' and j is: ' || j);
      END loop inner_loop;
   END loop outer_loop;
END;
/

当上述代码在SQL提示符执行时,它产生了以下结果:

i is: 1 and j is: 1
i is: 1 and j is: 2
i is: 1 and j is: 3
i is: 2 and j is: 1
i is: 2 and j is: 2
i is: 2 and j is: 3
i is: 3 and j is: 1
i is: 3 and j is: 2
i is: 3 and j is: 3

PL/SQL procedure successfully completed.

循环控制语句

循环控制语句改变其正常的顺序执行。当执行离开范围,在该范围内创建的所有对象自动被销毁。

PL/ SQL支持以下控制语句。标记循环也采取了循环外的控制。点击以下链接查看他们的详细资料。

控制语句 描述
EXIT语句 在EXIT语句END LOOP后立即完成返回,控制进到该语句
CONTINUE语句 将导致循环跳过其主体的其余部分,并立即重新测试其使用情况声明之前
GOTO语句 控制权转移给标签的语句。虽然不建议在程序中使用GOTO语句