PL/SQL - 循环



本章将讨论 PL/SQL 中的循环。您可能需要多次执行一段代码块。通常情况下,语句是顺序执行的:函数中的第一个语句首先执行,然后是第二个语句,依此类推。

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

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

Loop Architecture

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

序号 循环类型和描述
1 PL/SQL 基本 LOOP 循环

在此循环结构中,语句序列包含在 LOOP 和 END LOOP 语句之间。在每次迭代中,都会执行语句序列,然后控制返回到循环顶部。

2 PL/SQL WHILE 循环

当给定条件为真时,重复执行一个语句或一组语句。它在执行循环体之前测试条件。

3 PL/SQL FOR 循环

多次执行一系列语句,并缩写管理循环变量的代码。

4 PL/SQL 中的嵌套循环

您可以在任何其他基本循环、while 循环或 for 循环内使用一个或多个循环。

PL/SQL 循环的标注

PL/SQL 循环可以加标签。标签应括在双尖括号(<< 和 >>)中,并出现在 LOOP 语句的开头。标签名称也可以出现在 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 支持以下控制语句。循环标注也有助于控制跳出循环。点击以下链接查看详细信息。

序号 控制语句和描述
1 EXIT 语句

Exit 语句完成循环,控制传递到 END LOOP 后面的语句。

2 CONTINUE 语句

导致循环跳过其主体其余部分,并在立即重新迭代之前立即重新测试其条件。

3 GOTO 语句

将控制转移到带标签的语句。虽然不建议在程序中使用 GOTO 语句。

广告