PL/SQL GOTO 语句

2024年11月21日 PL/SQL GOTO 语句 极客笔记

PL/SQL GOTO 语句

PL/SQL 中,GOTO 语句使您能够从 GOTO 跳转到同一子程序中的特定可执行语句标签的无条件跳转。

这里的标签声明包含在 << >> 符号中的 label_name,并且必须后跟至少一个要执行的语句。

语法:

GOTO label_name;

在这里,label声明包含在<< >>符号中的label_name,并且必须至少跟随一个要执行的语句。

GOTO label_name;
 ..
..
<>
Statement;

PL/SQL GOTO语句示例

让我们来看一个PL/SQL GOTO语句的例子。

DECLARE
   a number(2) := 30;
BEGIN
   <>
   -- while loop execution 
   WHILE a < 50 LOOP
      dbms_output.put_line ('value of a: ' || a);
      a := a + 1;
      IF a = 35 THEN
         a := a + 1;
         GOTO loopstart;
      END IF;
   END LOOP;
END;
/

在执行上述代码后,您将获得以下结果:

value of a: 30
value of a: 31
value of a: 32
value of a: 33
value of a: 34
value of a: 36
value of a: 37
value of a: 38
value of a: 39
value of a: 40
value of a: 41
value of a: 42
value of a: 43
value of a: 44
value of a: 45
value of a: 46
value of a: 47
value of a: 48
value of a: 49

Statement processed.

GOTO语句的限制

以下是对GOTO语句施加的一些限制的列表。

  • 不能将控制转移到IF语句、CASE语句、LOOP语句或子块中。
  • 不能从一个IF语句子句转移到另一个IF语句子句,也不能从一个CASE语句的WHEN子句转移到另一个WHEN子句。
  • 不能从外部块转移到子块中。
  • 不能从子程序中转移控制。
  • 不能将控制转移到异常处理程序中。

本文链接:http://so.lmcjl.com/news/18229/

展开阅读全文