PL/SQL - 循环


在本章中,我们将讨论 PL/SQL 中的循环。可能存在这样的情况:您需要多次执行一段代码。一般来说,语句是按顺序执行的:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。

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

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

循环架构

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

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

在此循环结构中,语句序列包含在 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 语句完成循环,控制权立即传递到 END LOOP 之后的语句。

2 CONTINUE 语句

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

3 GOTO 语句

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