本文概要
在PL / SQL,GOTO语句使你能够得到从GOTO到一个特定的可执行语句标签无条件跳转在PL / SQL块的同一子程序。
这里的标签声明含有<< >>符号包裹内的LABEL_NAME和必须遵循的至少一个语句来执行。
句法:
GOTO label_name;
这里的标签声明含有<< >>符号包裹内的LABEL_NAME和必须遵循的至少一个语句来执行。
GOTO label_name;
..
..
<<label_name>>
Statement;
PL/ SQL GOTO语句的例子
让我们PL / SQL GOTO语句的一个例子。
DECLARE
a number(2) := 30;
BEGIN
<<loopstart>>
-- while loop execution
WHILE a < 50 LOOP
dbms_output.put_line ('value of a: ' || a);
a := a + 1;
IF a = 35 THEN
a := a + 1;
GOTO loopstart;
END IF;
END LOOP;
END;
/
上面的代码执行后,你会得到以下结果:
value of a: 30
value of a: 31
value of a: 32
value of a: 33
value of a: 34
value of a: 36
value of a: 37
value of a: 38
value of a: 39
value of a: 40
value of a: 41
value of a: 42
value of a: 43
value of a: 44
value of a: 45
value of a: 46
value of a: 47
value of a: 48
value of a: 49
Statement processed.
对GOTO语句的限制
以下是强加给GOTO语句有一些限制的列表。
- 无法控制转移到IF语句,CASE语句,LOOP语句或子块。
- 不能从一个传输控制IF语句子句到另一个或从一个CASE语句时,从句到另一个。
- 不能从外部块传送控制成子块。
- 不能将控制转到子程序。
- 不能将控制转到异常处理程序。
评论前必须登录!
注册