首页 > 数据库 >无涯教程-PL/SQL - GOTO函数

无涯教程-PL/SQL - GOTO函数

时间:2023-12-23 22:37:23浏览次数:39  
标签:语句 END GOTO 无涯 value SQL PL

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

相关文章

  • 无涯教程-PostgreSQL - 环境设置
    要开始了解PostgreSQL基础,首先让无涯教程安装PostgreSQL,本章说明有关在Linux,Windows和MacOS平台上安装PostgreSQL的信息。在Linux/Unix上安装请按照给定的步骤在Linux机器上安装PostgreSQL,在继续安装之前,请确保您以root身份登录。从中选择所需的PostgreSQL版本号,并尽可能精......
  • 博客园SimpleMemory主题美化
    前言:在撰写此文之前,我曾尝试过多种博客平台。每个平台都有其优点和缺点,但始终没有一个平台能够完全符合我的需求。有些平台难以操作,有些平台定制化水平不够高,有些平台又存在一些不足之处。直到我发现了博客园。我被博客园简洁、美观的界面、友好的社区氛围和强大的定制化能力所......
  • Redis 哨兵集群搭建并使用 RedisTemplate 实现读写分离
    上篇博客介绍的Redis主从集群搭建,有一个缺点就是master和slave的角色是固定的,不会发生变化。一旦master节点宕机,那么集群就只能提供读服务,无法提供写服务。本篇博客介绍Redis哨兵集群的搭建,可以监控Redis集群的master和slave节点,最重要的是一旦master宕机,哨兵集......
  • OpenPLC官方文档简单翻译(二)OpenPLC Runtime
    参考网址:https://autonomylogic.com/docs/2-1-openplc-runtime-overview/网站更新时间:2022-10-052.1 OpenPLCRuntime概述OpenPLCRuntime用来运行Editor创建的PLC程序。Mainruntime有一个内置的网络服务器,可以配置runtime的多个参数。但OpenPLCruntime的微型实现(直接运行......
  • OpenPLC官方文档简单翻译(三)OpenPLC Editor
    参考网址:https://autonomylogic.com/docs/3-1-openplc-editor-overview/网站更新时间:2022-10-053.1 OpenPLCEditor概略OpenPLC编辑器是一款符合IEC61131-3标准的PLC代码编辑器。它允许您创建、编译IEC61131-3程序并将其上传到OpenPLCRuntime。编辑器使用非常简......
  • OpenPLC官方文档简单翻译(一)Get Started
    参考网址:https://autonomylogic.com/docs/openplc-overview/网站更新时间:2022-10-051.1 OpenPLCOverviewOpenPLC是一个开源的基于软件的可编程逻辑控制器。OpenPLC是基于IEC61131-3标准(PLCs的基本软件架构和编程语言的标准)。(这里有个视频简单介绍OpenPLC的使用和功能。视......
  • 无涯教程-PL/SQL - CONTINUE函数
    CONTINUE语句会强制执行循环的下一次迭代,从而跳过两者之间的任何代码。CONTINUE-语法CONTINUE语句的语法如下-CONTINUE;CONTINUE-流程图CONTINUE-示例DECLAREanumber(2):=10;BEGIN--whileloopexecutionWHILEa<20LOOPdbms_outp......
  • 三十九、配置 PE 与 CE 间部署 IS-IS 的 MPBGP MPLS VPN 实验
    1、实验拓扑图2、实验目的ce1与ce3为同一个公司,通过BGP网络实现互联;ce2与ce4为同一个公司,通过BGP网络实现互联。3、实验步骤3.1配置bgp网络3.1.1为BGP网络配置IGPisis200network-entity49.0001.0010.0100.1001.00//配置isis的网络实体名称area+system+netcost-stylewideis-leve......
  • 性能测试之Mysql数据库调优
    一、前言性能调优前提:无监控不调优,对于mysql性能的监控前几天有文章提到过,有兴趣的朋友可以去看一下二、Mysql性能指标及问题分析和定位1、我们在监控图表中关注的性能指标大概有这么几个:CPU、内存、连接数、io读写时间、io操作时间、慢查询、系统平均负载以及memoryOver2、介......
  • MySQL 啥时候用表锁,啥时候用行锁?
    https://www.51cto.com/article/714377.htmlMySQLInnodb的锁可以说是执行引擎的并发基础了,有了锁才能保证数据的一致性。众所周知,我们都知道Innodb有全局锁、表级锁、行级锁三种,但你知道什么时候会用表锁,什么时候会用行锁吗?虽然对MySQL的知识点挺熟悉的,但一开始看到这个问......