PL/SQL 循环
来源:互联网 发布:网络视听许可证 youku 编辑:程序博客网 时间:2024/05/29 08:54
PL/SQL 提供三种不同的循环:
- FOR 循环
- 简单循环
- WHILE循环
FOR 循环
FOR循环适用于在循环前就已经明确知道需要循环的具体次数的情况。FOR循环有两种类型:
- FOR 数值循环
- FOR 光标循环
FOR 数值循环
FOR数值循环通过指定一个数值区间来定义:
FOR loop_counter IN [REVERSE] lower_bound .. higher_boundLOOP sequence_of_statements;END LOOP;
FOR循环自动创建迭代器整形的loop_counter
, 而不用人为声明,loop_counter
的作用域为FOR循环本身,从lower_bound
开始,每次循环加1,直到大于higher_bound
,循环退出。
lower_bound
必须小于或者等于higher_bound
,循环体才可能被执行,如果lower_bound
等于higher_bound
,循环体将执行一次,如果lower_bound
大于higher_bound
,循环体将不会被执行。
lower_bound
和higher_bound
可以是数值字面量,或者数值类型的变量,表达式。
可选的REVERSE
用于以相反的方向higher_bound .. lower_bound
产生迭代。
FOR 光标循环
FOR 光标循环和FOR 数值循环很类似,只是循环是通过光标或者SELECT语句指定的。
FOR loop_record IN CURSORLOOP sequence_of_statements;END LOOP;FOR loop_record IN (SELECT statement)LOOP sequence_of_statements;END LOOP;
自动创建的迭代器为记录类型。
简单循环
简单循环适合于无法提取预知需要迭代的具体次数的情况,简单循环的循环体会被无条件进入一次,结构为:
LOOP sequence_of_statements;END LOOP;
循环体可以用EXIT
,EXIT WHEN
,RETURN
退出,或者在循环体中产生异常的时候退出。
EXIT WHEN
在指定的条件condition
求值为TRUE时退出循环
LOOP ... EXIT WHEN condition;END LOOP;
EXIT
和RETURN
无条件退出循环
LOOP ... EXIT;END LOOP;
通过结合使用IF
和EXIT
或者RETURN
,可以实现EXIT WHEN
的效果。
WHILE循环
WHILE循环类似与简单循环,但是其在进入循环体前会先检查WHILE condition
条件是否为TRUE,为TRUE进入循环体,否则循环体将不会被执行。
WHILE conditionLOOP sequence_of_statements;END LOOP;
每次迭代condition
都会被求值,直到求值结果为FALSE
或NULL
的时候,循环结束。
单进单出
符合单进单出的循环,代码会显得更加简洁易懂。
EXIT
, EXIT WHEN
, RETURN
, GOTO
语句在所有的循环语句中都可以被使用于退出循环。但是对于FOR和WHILE循环来说,其本身就指定了出口,FOR在迭代固定此处后自动结束,WHILE在条件求值不为真时自动结束,如果在这两类循环中使用了能够导致循环退出的语句,则会造成这两类循环有多个出口。
确保单进单出的一个原则:如果可能,在FOR和WHILE循环中,不使用退出循环的语句。FOR循环只在需要迭代所有范围内的值的时候使用。
单进单出的规则适用于函数与过程,符合该规则的函数或过程代码将会更加简洁易懂。
- PL/SQL 循环
- PL/SQL循环
- PL/SQL循环
- pl/sql 循环
- Oracle PL/SQL 循环
- pl/sql 循环
- pl/sql loop循环
- pl/sql while循环
- PL/SQL 循环
- PL/SQL 循环语句
- PL/SQL 循环
- PL/SQL中的循环
- PL/SQL的循环语句
- pl/sql三种循环
- Oracle pl/sql基础---循环
- oracle pl sql loop循环
- oracle pl sql while 循环
- oracle pl sql for循环
- iPhone 6 / 6 Plus 出现后,如何改进工作流以实现一份设计稿支持多个尺寸?
- ART and Dalvik
- Python 迭代器与可迭代对象
- HTTP GET/CONNECT代理区别
- Python统计列表中的重复项出现的次数的方法
- PL/SQL 循环
- String s = "a" +"b" + "c" + "d";这条语句创建了几个对象?
- AngularJS中关于ng-class指令的几种实现方式详解
- mysql数据库之navicat图形化管理工具的使用
- 【VB.NET】浅谈VB与VB.NET的关系
- html css 居中总结
- HTTP代理原理以及HTTP隧道技术
- 文件索引
- C++文件操作