PL/SQL中的循环

《PL/SQL中的循环》

      我希望你在看这篇博客之前有一定的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循环不需要声明,只需要制定开始和结束即可完成。

猜你喜欢

转载自blog.csdn.net/qq1437715969/article/details/78655097
今日推荐