PL/SQL编程语言中的 GOTO 语句提供了从GOTO到同一子程序中带标签的语句的无条件跳转。
注意-在任何编程语言中均不建议使用GOTO语句,因为它会使跟踪程序的控制流变得困难,从而使程序难以理解且难以修改。
GOTO - 语法
PL/SQL中的GOTO语句的语法如下-
GOTO label; .. .. << label >> statement;
GOTO - 示例
DECLARE a number(2) := 10; BEGIN <<loopstart>> -- while loop execution WHILE a < 20 LOOP dbms_output.put_line ('value of a: ' || a); a := a + 1; IF a = 15 THEN a := a + 1; GOTO loopstart; END IF; END LOOP; END; /
当以上代码在SQL提示符下执行时,将产生以下输出-
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 16 value of a: 17 value of a: 18 value of a: 19 PL/SQL procedure successfully completed.
GOTO - 限制
PL/SQL中的GOTO语句施加以下限制-
GOTO语句无法分支为IF语句,CASE语句,LOOP语句或子块。
GOTO语句不能从一个IF语句子句分支到另一个,也不能从一个CASE语句的WHEN子句分支到另一个。
GOTO语句无法从外部块分支到子块(即内部BEGIN-END块)。
GOTO语句不能从子程序中分支出来。要提早结束子程序,请使用RETURN语句或将GOTO分支移至子程序结束之前的某个位置。
GOTO语句无法从异常处理程序分支回到当前的BEGIN-END块。但是,GOTO语句可以从异常处理程序分支到一个封闭的块中。
参考链接
https://www.learnfk.com/plsql/plsql-goto-statement.html
标签:语句,END,GOTO,无涯,value,SQL,PL From: https://blog.51cto.com/u_14033984/8946681