GOTO语句
label declaration ::=
goto statement ::=
GOTO使用有以下限制场景
不支持有多个相同的GOTO labels目标场景,无论是否在同一个block中。
GOTO pos1;
<<pos1>>
SELECT * FROM ...
<<pos1>>
UPDATE t1 SET ...
不支持GOTO跳转到IF语句,CASE语句,LOOP语句中。
-
IF valid THEN
GOTO pos1;
SELECT * FROM ...
ELSE
<<pos1>>
UPDATE t1 SET ...
不支持从外部块跳转到内部的BEGIN-END块。
不支持从异常处理部分跳转到当前的BEGIN-END块。但可以跳转到上层BEGIN-END块。
BEGIN
<<pos1>>
UPDATE t1 SET ...
EXCEPTION
WHEN condition THEN
END;
如果从GOTO到一个不包含执行语句的位置,需要添加NULL语句。