PL/SQL - 循环

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

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

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

循环架构

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

S.No 循环类型和描述
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 支持以下控制语句。 标记循环还有助于将控制置于循环之外。 单击以下链接以查看其详细信息。

S.No 控制语句和描述
1 EXIT 语句

Exit 语句完成循环并将控制传递给紧接在 END LOOP 之后的语句。

2 CONTINUE 语句

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

3 GOTO 语句

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