更新时间:2021-03-12 17:35:43 来源:极悦 浏览1412次
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的知识更通俗易懂。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习