- PL/SQL 教程
- PL/SQL - 首页
- PL/SQL - 概述
- PL/SQL - 环境
- PL/SQL - 基本语法
- PL/SQL - 数据类型
- PL/SQL - 变量
- PL/SQL - 常量和字面量
- PL/SQL - 运算符
- PL/SQL - 条件
- PL/SQL - 循环
- PL/SQL - 字符串
- PL/SQL - 数组
- PL/SQL - 过程
- PL/SQL - 函数
- PL/SQL - 游标
- PL/SQL - 记录
- PL/SQL - 异常
- PL/SQL - 触发器
- PL/SQL - 包
- PL/SQL - 集合
- PL/SQL - 事务
- PL/SQL - 日期和时间
- PL/SQL - DBMS 输出
- PL/SQL - 面向对象
- PL/SQL 有用资源
- PL/SQL - 问题与解答
- PL/SQL - 快速指南
- PL/SQL - 有用资源
- PL/SQL - 讨论
PL/SQL - FOR循环语句
FOR循环是一种重复控制结构,允许您高效地编写需要执行特定次数的循环。
语法
FOR counter IN initial_value .. final_value LOOP sequence_of_statements; END LOOP;
以下是For循环中的控制流程:
初始化步骤首先执行,并且只执行一次。此步骤允许您声明和初始化任何循环控制变量。
接下来,评估条件,即initial_value .. final_value。如果为TRUE,则执行循环体。如果为FALSE,则循环体不执行,控制流跳转到for循环之后的下一条语句。
for循环体执行完毕后,计数器变量的值会增加或减少。
现在再次评估条件。如果为TRUE,则循环执行并重复该过程(循环体,然后增量步骤,然后再次条件)。条件变为FALSE后,FOR循环终止。
以下是PL/SQL for循环的一些特殊特性:
循环变量或计数器的initial_value和final_value可以是字面量、变量或表达式,但必须计算为数字。否则,PL/SQL会引发预定义异常VALUE_ERROR。
initial_value不必为1;但是,循环计数器增量(或减量)必须为1。
PL/SQL允许在运行时动态确定循环范围。
示例
DECLARE
a number(2);
BEGIN
FOR a in 10 .. 20 LOOP
dbms_output.put_line('value of a: ' || a);
END LOOP;
END;
/
当以上代码在SQL提示符下执行时,它会产生以下结果:
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19 value of a: 20 PL/SQL procedure successfully completed.
反向FOR循环语句
默认情况下,迭代从初始值到最终值进行,通常是从下界向上到上界。您可以使用REVERSE关键字反转此顺序。在这种情况下,迭代将以相反的方式进行。每次迭代后,循环计数器都会递减。
但是,您必须以升序(而不是降序)编写范围边界。以下程序对此进行了说明:
DECLARE
a number(2) ;
BEGIN
FOR a IN REVERSE 10 .. 20 LOOP
dbms_output.put_line('value of a: ' || a);
END LOOP;
END;
/
当以上代码在SQL提示符下执行时,它会产生以下结果:
value of a: 20 value of a: 19 value of a: 18 value of a: 17 value of a: 16 value of a: 15 value of a: 14 value of a: 13 value of a: 12 value of a: 11 value of a: 10 PL/SQL procedure successfully completed.
plsql_loops.htm
广告