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
相关推荐
曲莫终12 分钟前
Java VarHandle全面详解:从入门到精通
java·开发语言
ruleslol12 分钟前
MySQL的段、区、页、行 详解
数据库·mysql
一心赚狗粮的宇叔22 分钟前
中级软件开发工程师2025年度总结
java·大数据·oracle·c#
Learn-Python27 分钟前
MongoDB-only方法
python·sql
while(1){yan}29 分钟前
MyBatis Generator
数据库·spring boot·java-ee·mybatis
奋进的芋圆36 分钟前
DataSyncManager 详解与 Spring Boot 迁移指南
java·spring boot·后端
それども38 分钟前
MySQL affectedRows 计算逻辑
数据库·mysql
是小章啊1 小时前
MySQL 之SQL 执行规则及索引详解
数据库·sql·mysql
计算机程序设计小李同学1 小时前
个人数据管理系统
java·vue.js·spring boot·后端·web安全
富士康质检员张全蛋1 小时前
JDBC 连接池
数据库