Skip to content

GOTO语句

GOTO语句是一种控制流语句,允许程序无条件跳转到代码中的另一个标签位置。PL/SQL中对GOTO语句有一些限制,对于块、循环、IF语句而言,从外层跳转到内层是非法的。

语法格式

sql
GOTO ColId;

参数说明

ColId:标签名,在需要跳转的位置以<<开头,以>>结尾,即<<ColId>>>

注意:

标签名不可以使用虚谷关键字,否则无法执行。

示例

该示例定义了循环体,每次循环均输出一条消息,当循环次数大于5时,跳转至标签ENDOFLOOP。

sql
DECLARE
	-- 声明部分
  v_counter INTEGER;
BEGIN
	-- 初始化
  v_counter := 1;
  -- 开始循环
  LOOP
    SEND_MSG('已循环:' || v_counter || '次 ');
    v_counter := v_counter + 1;
    IF v_counter > 5 THEN
    	-- 如果v_counter大于5,跳转到标签ENDOFLOOP
      GOTO ENDOFLOOP;
    END IF;
  END LOOP;
  -- 定义标签ENDOFLOOP
  <<ENDOFLOOP>>
  SEND_MSG('结束LOOP循环!共循环: ' || v_counter || '次 ');
END;
/

-- 输出
已循环:1次 
已循环:2次 
已循环:3次 
已循环:4次 
已循环:5次 
结束LOOP循环!共循环: 6次