PL/SQL 中的 GOTO函数

首页 / PL/SQL入门教程 / PL/SQL 中的 GOTO函数

PL/SQL编程语言中的 GOTO 语句提供了从GOTO到同一子程序中带标签的语句的无条件跳转。

注意-在任何编程语言中均不建议使用GOTO语句,因为它会使跟踪程序的控制流变得困难,从而使程序难以理解且难以修改。

链接:https://www.learnfk.comhttps://www.learnfk.com/plsql/plsql-goto-statement.html

来源:LearnFk无涯教程网

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语句可以从异常处理程序分支到一个封闭的块中。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

软件测试52讲 -〔茹炳晟〕

深入拆解Java虚拟机 -〔郑雨迪〕

Flutter核心技术与实战 -〔陈航〕

编译原理之美 -〔宫文学〕

Flink核心技术与实战 -〔张利兵〕

流程型组织15讲 -〔蒋伟良〕

中间件核心技术与实战 -〔丁威〕

快手 · 音视频技术入门课 -〔刘歧〕

大型Android系统重构实战 -〔黄俊彬〕

好记忆不如烂笔头。留下您的足迹吧 :)