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;
/
上面的代码生成以下结果:
实例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;
/