Labeled LOOP 语句

所有形式的 LOOP 语句,包括 FOR LOOP 、WHILE LOOP 和简单 LOOP 语句可以具有语句标签。您可以按以下步骤创建带标签的 LOOP 语句:
  1. 写一个有效的 LOOP 、FOR LOOP 或 WHILE LOOP 语句。
  2. 通过紧接在 LOOP 、FOR LOOP 或 WHILE LOOP 语句的第一行之前的尖括号(<<loop_label>>)之间包含一个 SQL 标识符(它不是同一 SPL 例程中的标签的名称)来创建语句标签。
  3. 输入相同的 SQL 标识符,但是不带尖括号分隔符,紧接在终止语句的 END LOOP 关键字之后,现在这是一个带标签的循环语句。
标记的 LOOP 语句的一个优点是它们可以在 EXIT 语句中引用。当执行 EXIT label 语句时,程序控制从 EXIT 语句传递到跟在指定循环标记之后的语句。
在以下示例中,标记的 WHILE LOOP 循环(其循环标记标识符是 endo)是标记的 LOOP 语句的语句块的一部分,其循环标签标识符是 voort。如果条件 EXIT 语句 EXIT endo WHEN x = 7: 检测到的条件为真,则程序控制传递到 END LOOP endo 内部生成之后的 LET x = x + 1 语句。如果条件语句 EXIT voort WHEN x > 9 检测到其条件为真,则程序控制传递到 END LOOP voort 语句之后的 LET x = x + 1 语句,并且 x 的值不能被 LET 语句递增。
 <<voort>>
          LOOP
          LET x = x+1;
          <<endo>>
          WHILE ( i < 10 ) LOOP
          LET x = x+1; 
          EXIT endo WHEN x = 7;
          EXIT voort WHEN x > 9;
          END LOOP endo;
          LET x = x+1;
          END LOOP voort;
        
使用 FOR 语句语法指定变量和变量可以采用的值的范围。循环迭代,直到达到对这些值的指定限制,或者直到控制被传递到循环之外,如以下示例中的无条件 EXIT 语句所示:
FOR i IN (1 TO 5) LOOP
            IF i = 5 THEN EXIT;
            ELSE
            CONTINUE;
            END LOOP;
          
在 FOR LOOP 语句中,FOR 关键字可以后跟 EXIT 或 CONTINUE 关键字,但是不需要 FOR 关键字,因为它在一个普通的 FOR 语句中。
以下示例用同等功能的条件 EXIT 语句替换 IF 语句:
FOR i IN (1 TO 5) LOOP
              EXIT WHEN i = 5;
              END LOOP;
            

相关的语句

<< Label >> 语句FORWHILE