PL/SQL教程

PL/SQL GOTO语句

PL/SQL GOTO语句

在PL/SQL中,GOTO语句使您能够无条件地从GOTO跳转到相同子程序中的特定可执行语句标签。 PL/SQL块。
这里的标签声明包含封装在<<>>符号中的label_name,并且必须至少跟随一个语句才能执行。
语法:
GOTO label_name;
此处为标签声明,其中包含封装在<<>>符号中的label_name,并且必须紧随其后至少执行一条语句。
GOTO label_name;
 ..
..
<<label_name>>
Statement;

PL/SQL GOTO语句示例

我们以PL/SQL GOTO语句示例为例。
DECLARE
   a number(2) := 30;
BEGIN
   <<loopstart>>
  --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语句子句转移到另一个,或从一个CASE语句WHEN子句转移到另一个。 无法将控制权从外部块转移到子块。 无法将控制权移出子程序。 无法将控制权转移到异常处理程序中。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4