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
相关推荐
I'm Jie7 分钟前
告别重复编码!SpringBoot 字段变更(新旧值)日志工具类的规范化设计与优雅实现
java·spring boot·后端
哥谭居民000113 分钟前
需求分析,领域划分到选择套用业务模式到转化落地,两个基本案例
java·大数据·需求分析
Tao____19 分钟前
适合中小型项目的物联网平台
java·物联网·mqtt·开源·iot
小马爱打代码19 分钟前
Spring AI:多模态 AI 大模型
java·人工智能·spring
数据库学啊24 分钟前
国产时序数据库哪个靠谱
数据库·时序数据库
李贺梖梖25 分钟前
day07 方法、面向对象1
java
除了代码啥也不会27 分钟前
Java基于SSE流式输出实战
java·开发语言·交互
尋有緣27 分钟前
力扣2292-连续两年有3个及以上的订单产品
leetcode·oracle·数据库开发
虹科网络安全30 分钟前
艾体宝干货 | Redis Java 开发系列#2 数据结构
java·数据结构·redis
sg_knight31 分钟前
SSE 技术实现前后端实时数据同步
java·前端·spring boot·spring·web·sse·数据同步