我希望你在看这篇博客之前有一定的C语言基础或者说java基础,因为三大结构中的循环结构可以说是我们必须认识的。
我们这里的学习方式类比一下:do-while循环
过程开始之前,我们先执行一下set serveroutput on;让窗口显示我们输出的结果。
declare
i int(4) := 1;
begin
loop
dbms_output.put_line(i);
exit when (i>=10);
i := i+1;
end loop;
end;
/
运行结果:
1
2
3
4
5
6
7
8
9
10
这里的 := 相当于java中的赋值号=,这里的=号相当于Java中的==。上述的循环结构类似于Java中的do-while循环。loop和end loop内部使我们要执行的循环体。exit when是在满足什么样的情况下推出当前循环体。
下面我们看一下while循环:
declare
i int(4) := 1;
begin
while i <= 10 loop
dbms_output.put_line(i);
i := i+1;
end loop;
end;
/
运行结果:
1
2
3
4
5
6
7
8
9
10
上面就是在PL/SQL中while循环。这里的结构就是这样,切记的是,千万不要再loop后面加 ; 这样会报错,loop在这里的含义就是循环开始。
看了上述的两个例子,如果说是一个正常人的话,我感觉上述两个循环体用的不如for循环多,所以说下面开始我们的重头戏:
begin
for i in 1..10 loop
dbms_output.put_line(i);
end loop;
end;
/
运行结果:
1
2
3
4
5
6
7
8
9
10
上面这个循环类似于是我们用的forEach循环。
在上述循环的基础上我们加上一个关键字即可改变循环输出结果。如下:
begin
for i in reverse 1..10 loop
dbms_output.put_line(i);
end loop;
end;
/
运行结果:
10
9
8
7
6
5
4
3
2
1
总结:不管我们使用什么循环体在PL/SQL中,其格式都是以loop开头,end loop结尾,其中前两个需要在decalre中先声明变量,在执行循环体的时候对增长下标进行自增操作,而for循环不需要声明,只需要制定开始和结束即可完成。