Plsql 简明教程

PL/SQL - Loops

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

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

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

loop architecture

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

S.No

Loop Type & Description

1

PL/SQL Basic LOOP 在此循环结构中,语句序列包含在 LOOP 和 END LOOP 语句之间。在每次迭代中,执行语句序列,然后在循环顶部继续控制。

2

PL/SQL WHILE LOOP 在一个给定的条件为真时重复一个语句或一组语句。在执行循环体之前,它会测试该条件。

3

PL/SQL FOR LOOP 多次执行一组语句,并缩短管理循环变量的代码。

4

Nested loops in PL/SQL 您可以在任何另一个基本循环、while 循环或 for 循环中使用一个或多个循环。

Labeling a PL/SQL Loop

可以标记 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.

The Loop Control Statements

循环控制语句改变了它在正常序列中的执行。当执行退出一个作用域时,在该作用域中创建的所有自动对象会被销毁。

PL/SQL 支持以下控制语句。标记循环还有助于控制循环外部。点击以下链接查看其详细信息。

S.No

Control Statement & Description

1

EXIT statement Exit 语句完成循环,控制权将传递到 END LOOP 之后的语句。

2

CONTINUE statement 导致循环跳过其主体的其余部分,然后在再次迭代之前立即重新测试其条件。

3

GOTO statement 将控制权传输到标记语句。虽然不建议在程序中使用 GOTO 语句。