Oracle PL / SQL goto 语句

GOTO语句在相同的执行中对另一个可执行语句执行无条件分支。

GOTO语句的一般格式是:

GOTO label_name; 

其中label_name是标识目标语句的标签的名称。

该GOTO标签在程序中定义如下:

<<label_name>>

 

实例

执行时,GOTO语句将控制转移到标记的语句或块。

DECLARE
  p  VARCHAR2(30); 
  n  PLS_INTEGER := 100; 
BEGIN 
  FOR j in 2..ROUND(SQRT(n)) LOOP 
        IF n MOD j = 0 THEN 
              p := ' is not a prime number'; 
              GOTO my_label; 
        END IF; 
  END LOOP; 
  p := ' is a prime number'; 
  <<my_label>> 
  DBMS_OUTPUT.PUT_LINE(TO_CHAR(n) || p); 
END; 
/ 

上面的代码生成以下结果:

Oracle PL / SQL goto 语句

 

实例2

以下代码显示了如何使用NULL语句来允许GOTO到标签。

DECLARE 
  done  BOOLEAN; 
BEGIN 
  FOR i IN 1..50 LOOP 
    IF done THEN 
      GOTO end_loop; 
    END IF; 
    <<end_loop>> 
    NULL; 
  END LOOP; 
END; 
/