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; /