PL/SQL提供了丰富的循环结构来重复执行一些列语句。Oracle提供的循环类型有:
1. 无条件循环LOOP-END LOOP语句
2. WHILE循环语句
3. FOR循环语句
在上面的三类循环中EXIT用来强制结束循环,相当于C#循环中的break。
LOOP循环是最简单的循环,也称为无限循环,LOOP和END LOOP是关键字。
语法格式:LOOP循环
LOOP
--循环体
END LOOP;
语法格式:
1. 循环体在LOOP和END LOOP之间,在每个LOOP循环体中,首先执行循环体中的语句序列,执行完后再重新开始执行。
2. 在LOOP循环中可以使用EXIT或者[EXIT WHEN 条件]的形式终止循环。否则该循环就是死循环。
案例1:执行1+2+3+…+100的值
代码演示:LOOP循环
DECLARE
counter number(3):=0;
sumResult number:=0;
BEGIN
LOOP
counter := counter+1;
sumResult := sumResult+counter;
IF counter>=100 THEN ①
EXIT;
END IF;
-- EXIT WHEN counter>=100; ②
END LOOP;
dbms_output.put_line('result is :'||to_char(sumResult));
END;
代码解析:
① LOOP循环中可以使用IF结构嵌套EXIT关键字退出循环
② 注释行,该行可以代替①中的循环结构,WHEN后面的条件成立时跳出循环。
与C#中的while循环很类似。先判断条件,条件成立再执行循环体。
语法格式:WHILE
C#中while语法 | PL/SQL中WHILE语法 |
while (条件){ //循环体体 } | WHILE 条件 LOOP --循环体 END LOOP; |
案例2:WHILE循环
代码演示:WHILE循环
DECLARE
counter number(3):=0;
sumResult number:=0;
BEGIN
WHILE counter<100 LOOP
counter:=counter+1;
sumResult:=sumResult+counter;
END LOOP;
dbms_output.put_line('result is :'||sumResult);
END
FOR循环需要预先确定的循环次数,可通过给循环变量指定下限和上限来确定循环运行的次数,然后循环变量在每次循环中递增(或者递减)。FOR循环的语法是:
语法格式:FOR循环
FOR 循环变量 IN [REVERSE] 循环下限..循环上限 LOOP LOOP --循环体 END LOOP;
语法解析:
循环变量:该变量的值每次循环根据上下限的REVERSE关键字进行加1或者减1。
REVERSE:指明循环从上限向下限依次循环。
案例3:FOR循环
代码演示:FOR循环
DECLARE
counter number(3):=0;
sumResult number:=0:
BEGIN
FOR counter IN 1..100 LOOP
sumResult := sumResult+counter;
END LOOP;
dbms_output.put_line('result is :'||sumResult);
END;

扫描二维码关注我的微学堂
搜索刘老师微信号:Rman-2014,备注“Oracle学习与咨询”,即可添加好友;或者扫描下面二维码,关注我的“微学堂”公众号,了解最新OCP认证动态、题库及答案解析、培训机构及讲师介绍、课堂授课内容等。每天还有一篇技术文章发布哦!





