在一些存储过程场景中,可能存在需要在满足某些条件时跳出循环的场景,
但是在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
语句)之前放置标签来标记它,
然后,标签可以与EXIT
或CONTINUE
等控制流语句搭配使用,以指定退出或继续哪个循环。
最后看执行结果:
text
外层循环:1
内层循环:1
内层循环:2
内层循环:3
内层循环:4
内层循环:5
外层循环:2
内层循环:1
内层循环:2
内层循环:3