• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle循环语句

mysql 搞代码 4年前 (2022-01-09) 28次浏览 已收录 0个评论

编写循环控制结构时,用户可以使用基本循环,WHILE循环和FOR循环等三种类型的循环语句,下面分别介绍使用这三种循环语句的方法。 1.基本循环 LOOP statement1; …… EXIT [WHEN condition]; END L本文来源gaodai$ma#com搞$$代**码网$OOP; 当使用基本循环时,无论是否满足条件,语句至少会被执

编写循环控制结构时,用户可以使用基本循环,WHILE循环和FOR循环等三种类型的循环语句,下面分别介绍使用这三种循环语句的方法。

1.基本循环

LOOP

statement1;

……

EXIT [WHEN condition];

END LOOP;

当使用基本循环时,无论是否满足条件,语句至少会被执行一次,当condition为TRUE时,会退出循环,并执行END LOOP后的相应操作。当编写基本循环时一定要包含EXIT语句,否则会陷入死循环。另外还应该定义循环控制变量,并且在循环体内修改循环控制变量的值。示例:

SQL> declare
2 i int:=1;
3 begin
4 loop
5 insert into testloop values(i);
6 exit when i=10;
7 i:=i+1;
8 end loop;
9 end;
10 /

2.WHILE循环

基本循环至少要执行一次循环体内的语句,而对于WHILE循环来说,只有条件为TRUE时,才会执行循环体内的语句。WHILE循环以WHILE …LOOP开始,以END LOOP结束。

WHILE condition LOOP

statement1;

statement2;

…..

END LOOP;

当condition为TRUE时,执行循环体内的语句,而当condition为FALSE或NULL时,会退出循环,并执行END LOOP后的语句。当使用WHILE循环时,应该定义循环控制变量,并在循环体内改变循环控制变量的值。示例:

SQL> declare
2 i int:=1;
3 begin
4 while i<=10 loop
5 insert into testloop values(i);
6 i:=i+1;
7 end loop;
8 end;
9 /

3.FOR循环

当使用基本循环或WHILE循环时,需要定义循环控制变量,并且循环控制变量不仅可以使用NUMBER类型,也可以使用其他数据类型。当使用FOR循环时,ORACLE会隐含定义循环控制变量。

FOR counter in [REVERSE] lower_bound. .upper_bound LOOP

statement1;

statement2;

…….

END LOOP;

counter是循环控制变量,并且该变量由oracle隐含定义,不需要显式定义。lower_bound和upper_bound分别对应于循环控制变量的下界值和上界值,默认情况下,当使用FOR循环时,每次循环时循环控制变量会自动增1.如果指定REVERSE选项,那么每次循环时循环控制变量会自动减1。示例:

SQL> begin
2 for i in reverse 1..10 loop
3 insert into testloop values(i);
4 end loop;
5 end;

4.嵌套循环和标号

嵌套循环是指在一个循环语句之中嵌入另一个循环语句,而标号(label)则用于标记嵌套块或嵌套循环,通过在嵌套循环中使用标号,可以区分内层循环和外层循环,并且可以在内层循环中直接退出外层循环,在编写时可以用<

SQL> declare
2 result int;
3 begin
4 <>
5 for i in 1..100 loop
6 <>
7 for j in 1..100 loop
8 result:=i*j;
9 exit outer when result=1000;
10 exit when result=500;
11 end loop inter;
12 dbms_output.put_line(result);
13 end loop outer;
14 dbms_output.put_line(result);
15 end;
16 /

当执行以上PL/SQL块时,如果result=1000,那么直接退出外层循环,而result=500时只会退出内层循环。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle循环语句

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址