专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 PL/SQL循环语句详解

PL/SQL循环语句详解

更新时间:2021-03-12 17:35:43 来源:赢咖4 浏览1267次

PL/SQL是Oracle数据库对SQL语句的扩展,PL/SQL(Procedural Language/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。其中PL/SQL循环语句是在一定条件下反复执行某段程序的流程结构,PL/SQL循环语句主要有如下4种:

1.基本LOOP

2.FOR LOOP

3.游标FOR LOOP

4.WHILE LOOP

除此之外,完全退出循环的语句是: EXIT和EXIT WHEN,退出当前循环并进入下一次循环的语句是: CONTINUE和CONTINUE WHEN。下面我们来对PL/SQL循环语句进行一一介绍:

1、基本LOOP语句

基本LOOP语句的语法格式如下

[标签] LOOP

语句系列

END LOOP [标签];

为防止无限循环,必须有一个语句或抛出异常来退出循环

2、EXIT语句

EXIT语句无条件的退出当前循环或标签指定的外层循环
样例程序如下

DECLARE

    x NUMBER := 0;BEGIN

    LOOP

        DBMS_OUTPUT.PUT_LINE('Inside loop: x = ' || TO_CHAR(x));

        x := x + 1;

        IF x > 3 THEN

            EXIT;

        END IF;

    END LOOP;

    -- EXIT执行后,程序会执行到这里

    DBMS_OUTPUT.PUT_LINE('After loop: x = ' || TO_CHAR(x));END;/

3、EXIT WHEN语句

EXIT WHEN语句的语法格式如下

EXIT WHEN 条件表达式;

当条件表达式为TRUE时就退出当前循环或指定标签的外层循环,上一个EXIT语句的样例程序可以改写为:

DECLARE

    x NUMBER := 0;BEGIN

    LOOP

        DBMS_OUTPUT.PUT_LINE('Inside loop: x = ' || TO_CHAR(x));

        x := x + 1;

        EXIT WHEN x > 3

    END LOOP;

    -- EXIT执行后,程序会执行到这里

    DBMS_OUTPUT.PUT_LINE('After loop: x = ' || TO_CHAR(x));END;/

下面是一个嵌套循环的样例程序。

DECLARE

    s PLS_INTEGER := 0;

    i PLS_INTEGER := 0;

    j PLS_INTEGER;BEGIN

    <<outer_loop>>

    LOOP

        i := i + 1;

        j := 0;

        <<inner_loop>

        LOOP

            j := j + 1;

            s := s + i * j;

            EXIT inner_loop WHEN (j > 5);

            EXIT outer_loop WHEN ((i * j) > 15);

        END LOOP inner_loop;

    END LOOP outer_loop;

    DBMS_OUTPUT.PUT_LINE('The sum of products equals: ' || TO_CHAR(s));END;/

有些语言拥有LOOP UNTIL或REPEAT UNTIL语句,它们的测试条件在尾部而不是在开头,所以循环体内的语句至少会执行一次,要想模拟这种语句,可以使用:

LOOP

语句系列

EXIT WHEN 条件;

END LOOP;

4、CONTINUE语句

CONTINUE语句无条件退出当前循环或指定标签的外层循环,并进入下一次循环

5、CONTINUE WHEN语句

CONTINUE WHEN语句的语法格式如下

CONTINUE WHEN 条件表达式;

当条件表达式为TRUE时就退出当前循环或指定标签的外层循环,并进入下一次循环

6、FOR LOOP语句

当循环索引在指定的值范围内时FOR LOOP循环执行一系列语句,语法格式如下

[标签] FOR 索引 IN [REVERSE] 低值..高值 LOOP

一系列语句

END LOOP [标签];

在不使用REVERSE时,索引的值从低值开始,每次循环后加1,直到等于高值后,循环结束;如果低值比高值大,那么循环永远不会执行;在使用REVERSE时,索引的值从高值开始,每次循环后减1,直到等于低值后,循环结束;低值比高值大,那么循环永远不会执行;
在FOR LOOP循环中可以使用EXIT, EXIT WHEN, CONTINUE和CONTINUE WHEN语句来提前退出循环;

FOR LOOP循环索引的概念我们也有必要了解一下:
循环索引这个变量隐式的被声明为PLS_INTEGER类型局部变量,循环内部的语句可以访问索引的值,但是不能改变它,而循环外部的语句无法访问这个索引变量,循环结束后索引变量就被销毁了,所以有时索引也被称为循环计数器。

7、WHILE LOOP语句

WHILE LOOP循环语句的语法格式如下

[标签] WHILE 条件 LOOP

语句系列

END LOOP [标签];

如果条件的计算结果是TRUE,那么循环就一直执行

以上就是PL/SQL循环语句的部分内容,我们稍加认真地学习,基本上不难掌握大体内容。实在难以理解的地方,我们可以参考本站的PL/SQL教程中给出的实例,可以加深我们的理解,让PL/SQL的知识更通俗易懂。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>