ORACLE PL/SQL 实例精解之第六章 迭代控制之一
6.1 简单循环
简单循环,就想其名称一张,是一种最基本循环。简单循环具有如下结构
LOOP
STATEMENT 1;
STATEMENT 2;
...
STATEMENT N;
END LOOP;
保留字LOOP标识简单循环的开始。STATEMENT1到STATEMENT N 是反复执行的语句序列。这些语句由一个或者多个标准的编程结构组成。END LOOP是标识循环结构结束的保留字
每次循环迭代处理时,一些列语句会执行,然后再次执行循环最开始的语句。上述语句序列会无限制的执行,因为没有语句指定何时循环会终止。因此,简单循环称为无穷循环,因为无法退出这个循环,正确构造的循环需要退出条件,退出条件决定循环终止的情况。退出条件有两种形式:EXIT和EXIT WHEN
1. EXIT语句
使用EXIT子句,当EXIT条件为TRUE时,循环会终止。计算EXIT条件时会使用IF语句。当EXIT语句被计算为TRUE时,执行权会转到END LOOP语句后的第一条可执行语句
LOOP
STATEMENT 1;
STATEMENT 2;
IF CONDIDTION THEN
EXIT;
END LOOP;
STATEMENT 3;
2. EXIT WHEN 语句
只有当EXIT WHEN 语句条件的计算结果为TRUE时,才会终止循环。然后,执行权会转到END LOOP 语句之后的第一条可执行语句。
EXIT WHEN子句的循环结构
LOOP
STATEMENT 1;
STATEMENT 2;
EXIT WHEN CONDIDTION;
END LOOP;
STATEMENT 3;
6.1.2 使用带有EXIT WHEN条件的简单循环
6.2 WHILE 循环
WHILE循环结构:
WHILE CONDITION LOOP
STATEMENT 1;
STATEMENT 2;
......
STATEMENT N;
END LOOP;
保留字WHILE标识循环结构的开始。CONDITION是本训话的测试条件,结果为TRUE或者FALSE.测试结果决定是否执行本循环。语句1~N是重复执行的语句序列。END LOOP是标识循环结构结束的保留字
理解:就是先判断CONDIDTION如果是TRUE满足就进入循环,不满足就结束循环直接执行下一条语句
提前终止循环
在WHILE循环体中,可以使用EXIT和EXIT WHEN语句。如果在测试条件为FALSE之前,EXIT条件为TRUE,则循环会被提前终止。如果在EXIT条件为TRUE之前,测试条件为TRUE,测不算作循环提前终止。
WHILE TEST_CONDIDTION LOOP
STATEMENT 1;
STATEMENT 2;
IF EXIT_CONDITION THEN
EXIT;
END IF;
END LOOP;
STATEMENT 3;
或者
WHILE TEST_CONDIDTION LOOP
STATEMENT 1;
STATEMENT 2;
EXIT WHEN EXIT_CONDITION;
END LOOP;
STATEMENT 3
6.3 数值型FOR循环
FOR loop_counter IN [REVERSE] lower_limit..upper_limit loop
STATEMENT 1;
STATEMENT 2;
.....
STATEMENT N;
END LOOP
保留字FOR标识FOR循环结构的开始。变量loop_counter是以已含定义的索引变量,没有必要再PL/SQL语句块的生命部分定义循环计数器。这个变量是循环结构定义的。lower_limit和upper_limit是两个整数数字或者在运行时计算结果为整数值的表达式,双点号。。是范围操作符。lower_limit和upper_limit是两个整数数字或者在运行时计算结果为整数值的表达式,双点号。。是范围操作符。lower_limit和upper_limit定义循环的迭代次数,其值在循环第一次迭代时计算。语句1到N是反复执行的语句序列。END LOOP是标识循环结构结束的保留字。当循环被定义时,保留字IN或者IN REVERSE必须已经存在。如果使用REVERSE保留字,循环计数器会从上限值迭代到下限值。但是限制规范的语法不会变化。下限制始终会被首先引用。
1. 在循环中使用REVERSE选项
在本节前面,当计算机循环计数器的值时,可以使用两个选项:IN和REVERSE.前面已经讨论过在循环中IN选项的用法。下面的例子演示如何在循环中使用IN REVERSE选项
ORACLE PL/SQL 实例精解之第六章 迭代控制之一的更多相关文章
- ORACLE PL/SQL 实例精解之第七章 迭代控制之二
7.1CONTINUE语句 CONTINUE语句会导致循环终止当前迭代.并且当CONTINUE的条件为TRUE时,开始执行该循环的下一次迭代.需要借助于IF语句来计算COUNTINUE条件.当CONT ...
- ORACLE PL/SQL 实例精解之第五章 条件控制:CASE语句
5.1 CASE语句 1. CASE语句具有如下结构 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSSION 2 THEN ...
- ORACLE PL/SQL 实例精解之第四章 条件控制:if 语句
4.1 IF 语句 IF语句两种形式:IF-THEN IF-THEN-ELSE 使用IF-THEN,可以指定需要执行的一组动作. IF-THEN-ELSE语句指定两组动作 1. IF-THEN TRU ...
- ORACLE PL/SQL 实例精解之第三章 PL/SQL中的SQL
3.1 在PL/SQL中使用DML 在PL/SQL语块中,两种变量赋值a. := 初始化.b. select into语法,PL/SQL语块的声明部分被声明的变量,后期可以使用选择语句进行赋值. 3. ...
- ORACLE PL/SQL 实例精解之第二章 通用编程语言基础
通用编程语言基础 2.1PL/SQL编程基础 1. 字符类型:支持四中类型字符:字母,数字,符号和空格,组合一个或多个字符就会创建一个词汇单元 2. 词汇单元 a.标识符必须以字符开头 b.保留字是p ...
- ORACLE PL/SQL 实例精解之第一章 PL/SQL概念
1.传统一层一层传数据,而PLSQL作为独立的单元返回客户端,减少查询,减少网路传输的往返,高效 2.PL/SQL语句块 分为两种:命名(子程序,函数,包保存在数据库中,后期可以根据名称进行引用),匿 ...
- pl/sql 实例精解 05
本章主要讨论 case 语句 1: case [SELECTOR] 2: when expression 1 then statement 1; 3: when expression 2 then s ...
- pl/sql 实例精解 03
1. 在Pl/sql 中使用 sql 1: /* 2: * 一个 pl/sql 语句块, 只是一个容器, 是表明一个整体的容器, 容器里可以放置多个sql语句 3: */ 4: 5: declar ...
- pl/sql 实例精解 04
本章主要讨论, IF 语句的应用. 1: if condition1 then 2: statement1 3: elsif condition2 then 4: statement2 5: else ...
随机推荐
- 如何绕过Win8、Win10的systemsetting与注册表校验设置默认浏览器
*本文原创作者:浪子_三少,属Freebuf原创奖励计划,未经许可禁止转载 在win7时我们只需修改注册表就能设置默认浏览器,但是win8.win10下不能直接修改的因为同样的注册表项,win8.wi ...
- 反混淆:恢复被OLLVM保护的程序
译者序: OLLVM作为代码混淆的优秀开源项目,在国内主流app加固应用中也经常能看到它的身影,但是公开的分析研究资料寥寥.本文是Quarkslab团队技术博客中一篇关于反混淆的文章,对OLLVM项目 ...
- html中跳转方法(含设定时间)
脚本方式 如: <script language="JavaScript" type="text/JavaScript"> <!-- wind ...
- glib的安装(2)
一: glib库的路径: http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.20/ 二: 下载glib库: wget http://ftp.acc. ...
- vue class与style绑定、条件渲染、列表渲染
列表渲染 根据我例子的需要,先来说下,列表渲染使用到的是v-for指令,需要使用 item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名,具体使用方法 ...
- Arcgis Engine(ae)接口详解(3):featureClass的feature编辑和删除
//由于测试数据不完善,featureClass在此要只设null值,真实功能要设实际的值 IFeatureClass featureClass = null; //获取某个字段的索引,后面取字段值用 ...
- directdraw 显示yuv
http://www.cnblogs.com/lidan/archive/2012/03/23/2413772.html http://www.yirendai.com/msd/
- 不能实现RadioButton默认选择
当用RadioButton时,希望在程序运行的时候默认一个选项: CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1); //CheckRadioBut ...
- XFire WebService demo
XFire创建WebService实例应用 XFire使得在JavaEE应用中发布Web服务变得轻而易举.和其他Web服务引擎相比, XFire的配置非常简单,可以非常容易地和Spring集成. ...
- js中!~什么意思
(function () { var names = []; return function (name) { addName(name); } function addName(name) { if ...