Oracle/PL/SQL奇技淫巧之Lable标签与循环控制

在一些存储过程场景中,可能存在需要在满足某些条件时跳出循环的场景,

但是在PL/SQL中,不能使用break语句直接跳出循环,

但是可以通过lable标签的方式跳出循环,例:

sql 复制代码
<<outer_loop>>
FOR i IN 1..5 LOOP
  DBMS_OUTPUT.PUT_LINE('外层循环:' || i);

  <<inner_loop>>
  FOR j IN 1..5 LOOP
    DBMS_OUTPUT.PUT_LINE('内层循环: ' || j);
    
    -- Use a condition to break out of the outer loop
    IF i = 2 AND j = 3 THEN
      EXIT outer_loop;
    END IF;
  END LOOP inner_loop;
END LOOP outer_loop;

在这个例子中,

我们有一个标记为outer_loop的外部循环和一个标记为inner_loop的内部循环

在内部循环中,有一个i = 2 AND j = 3条件, 如果此条件满足,则使用EXIT语句跳出外部循环

标签使用<<label_name>>语法定义,

可以在任何循环语句(FOR循环、WHILE循环或LOOP语句)之前放置标签来标记它,

然后,标签可以与EXITCONTINUE等控制流语句搭配使用,以指定退出或继续哪个循环。

最后看执行结果:

text 复制代码
外层循环:1
内层循环:1
内层循环:2
内层循环:3
内层循环:4
内层循环:5
外层循环:2
内层循环:1
内层循环:2
内层循环:3
相关推荐
钱多多_qdd3 分钟前
spring cache源码解析(四)——从@EnableCaching开始来阅读源码
java·spring boot·spring
XiaoH2333 分钟前
培训机构Day15
sql·mysql
waicsdn_haha5 分钟前
Java/JDK下载、安装及环境配置超详细教程【Windows10、macOS和Linux图文详解】
java·运维·服务器·开发语言·windows·后端·jdk
Q_192849990615 分钟前
基于Spring Boot的摄影器材租赁回收系统
java·spring boot·后端
Code_流苏18 分钟前
VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
java·ide·vscode·搭建·java开发环境
Mr.131 小时前
数据库的三范式是什么?
数据库
禁默1 小时前
深入浅出:AWT的基本组件及其应用
java·开发语言·界面编程
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Code哈哈笑1 小时前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
gb42152871 小时前
springboot中Jackson库和jsonpath库的区别和联系。
java·spring boot·后端