使用 SPL 的 <<label>> 语句声明语句标签或循环标签。
- statement label 是 SQL 标识符,由双尖括号分隔,紧接语句块中语句之前,SPL 的 GO TO 语句可以传递程序执行的控制。
- loop label 是 SQL 标识符,由紧靠 SPL 循环语句之前的尖括号分隔。相同的标签,没有双尖括号分隔符,可以跟随 END LOOP 关键字或 END
FOR 关键字或 END WHILE 关键字终止标签循环。EXIT label 语句可以将程序执行的控制传递到紧随未定界循环标签之后的任何语句。
请注意
label 并不是 <<
label>> 语句的关键字,它是 <<
label>>
语句声明的语句标签或循环标签某些特定用户定义的标识符的占位符。
语法
元素 |
描述 |
限制 |
语法 |
label |
语句标签或循环标签的名称 |
在 SPL 例程的语句标签和循环标签的中必须是唯一的 |
标识符 |
用法
您可以这两中方法使用 <<
Label>> 语句:
- 在 SPL 的 GO TO 语句可以传递执行控制的可执行语句之前声明 statement label 。紧跟在语句标签声明之后的 SPL 语句称为
labeled statement。
- 在 SPL 的 LOOP 、FOR 或 WHILE 语句之前声明 loop label 。紧跟在循环标签声明之后的 LOOP 、FOR 或 WHILE
语句称为 labeled loop。
EXIT label 或 EXIT label WHEN (条件)语句可以从带标签的循环中跳出,将执行控制传递到 END LOOP
label 标签语句之后的语句,在 EXIT 语句中指定的 label 可以匹配 EXIT 语句的标签循环的标签标识符,或者如果循环是嵌套的,此
label 必须符合输出的带标签的循环的标签。在任一情况下,EXIT label 语句将控制传递到跟随在指定相同循环标签的 END LOOP
label 语句之后的语句。此 EXIT label 行为与 GOTO label 语句的行为不同,GOTO label
语句将控制传递到指定语句标签的声明之后的语句。
以下限制应用于 SPL 例程中的标签:
- 语句标签的名称必须在 GOTO 语句引用的作用域内。
- SQL 的 WHENEVER 语句的 GOTO 选项不能引用 SPL 语句标签,WHENEVER 语句只在 ESQL/C 应用程序中有效。
- SPL 的 GOTO 语句不能引用循环标签。
- GOTO 语句不能引用 ON EXCEPTION 语句块中的语句标签。
- 不能在 ON EXCEPTION 语句块中声明语句标签。
- 标签名称在 SPL 例程的语句标签和循环标签中必须是唯一的。