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
相关推荐
zfj3213 分钟前
好书分享:《两周自制脚本语言》-用java实现一个脚本语言
java·开发语言·python·编译原理
m0_715575345 分钟前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
金仓数据库7 分钟前
制造核心!ERP全栈国产化落地上海,金仓数据库硬核发力
数据库·制造
m0_736919108 分钟前
将Python Web应用部署到服务器(Docker + Nginx)
jvm·数据库·python
Leo.yuan11 分钟前
中国特色的数据库需求:不是技术最强,而是领导汇报PPT最漂亮?
大数据·数据库·大屏端·技术选型
索荣荣16 分钟前
Java反射:从入门到实战的终极指南
java·开发语言
麦兜*18 分钟前
深入剖析新一代AI Native技术栈:从向量数据库与LangChain应用架构到多模态大模型微调与智能体工作流的全链路实战
数据库·人工智能·langchain
Leo6553519 分钟前
easyExcel 的动态列导出把文本转为数值格式,可以进行函数计算
java
m0_7066532321 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
鹿角片ljp24 分钟前
力扣136.只出现一次的数字-异或和HashMap
java·数据结构·算法·leetcode