Oracle 循环学习
来源:互联网 发布:php面试让现场写代码 编辑:程序博客网 时间:2024/05/17 21:51
1. LOOP循环语句:
loop
statement1;
....
exit [when condition];
end loop;
(当condition为true时,会退出循环,并执行end loop后的相应操作)
declare
i int :=1;
begin
loop
insert into temp values (i);
exit when i=10;
i:= i+1;
end loop;
end;
/
解释:在执行以上PL/SQL块时,会使用基本循环为TEMP表插入10条数据(1,2,...,10),并当i=10时退出循环
2.while循环:
while condition loop
statement1;
statement2;
....
end loop;
(当condition为true时,PL/SQL执行器会执行循环体内的语句;当condition为false或null时,会退出循环,并执行end loop后的语句)
例:
declare
i int :=1;
begin
while i <= 10 loop
insert into temp values (i);
i := i+1;
end loop;
end;
/
解释:当执行以上PL/SQL块时,会使用while循环为temp表插入10条记录(1,2,....,10),当i=11时会退出循环。
3.For循环:
for counter in [reverse]
lower_bound .. upper_bound loop
statement1;
statement2;
...
end loop;
(counter是循环控制变量,并且该变量由oracle隐含定义,不需要显示定义;lower_bound和upper_bound分别对应循环控制变量的下界值和上界值。默认情况下,当使用for循环时,每次循环时循环控制变量会自动增一;如果指定reverse选项,那么每次循环时循环变量会自动减一。)
例:
begin
for i in reverse 1 .. 10 loop
insert into temp values(i);
end loop;
end;
/
解释:当执行以上PL/SQL块时,会为temp表插入10条记录。因为指定了reverse选项,所以被插入数据的顺序为10,9,8....1。
4.嵌套循环:
嵌套循环是指在一个循环语句之中嵌入另一个循环语句,而标号(label)则用于标记嵌套块或嵌套循环。
declare
result int;
begin
<<outer>>
for i in 1 ..100 loop
<<inter>>
for j in 1 ..100 loop
result := i*j;
exit outer when result =1000;
exit when result=500;
end loop inner;
dbms_output.put_line(result);
end loop outer;
dbms_output.put_line(result);
end;
/
当执行以上PL/SQL块时,如果result=1000,那么会直接退出外层循环,而当result=500时只会退出内层循环。
- oracle学习--循环语句
- oracle学习--循环语句
- oracle学习--循环语句
- oracle学习--循环语句
- Oracle 循环学习
- oracle 学习笔记之循环
- Oracle角色,函数,循环的分析学习
- ORACLE循环
- ORACLE 循环
- oracle 循环
- Oracle-循环
- oracle 循环
- oracle循环
- oracle 循环
- oracle循环
- oracle循环
- ORACLE循环
- oracle循环
- 国际化与本地化(i18n)支持函数库(多语言)
- net spy memcached 使用demo
- 机房收费系统(1)之结账
- Redis客户端之Jedis
- 网络报文转发逻辑
- Oracle 循环学习
- [IOS]UIViewController的生命周期及iOS程序执行顺序
- 通过编译器执行程序时需要经过哪4步?
- 分布式session
- Codeforces Round #262 (Div. 2) 460C. Present(二分)
- docker 实战---安装一个基础镜像 (一)
- 插入排序之2路插入排序
- 关于marketing 的English
- 2014-5-18 NPC死亡这些破事