PL/SQL之--流程控制语句
一、简介
像编程语言一样,oracle PL/SQL也有自己的流程控制语句。通过流程控制语句,我们可以在PL/SQL中实现一下比较复杂的业务逻辑操作。而无需到程序中去控制,在一定程度上提高了效率,这也是PL/SQL的强大之处。PL/SQL流程控制语句有如下几种:
- 控制语句: 包括IF 语句、CASE语句
- 循环语句: 包括LOOP语句, WHILE语句、FOR语句
- 顺序语句: 包括GOTO语句
二、语句种类
1、控制语句
a、IF语句
语法如下:
IF 条件语句 TEHN 执行语句
ELSIF 条件语句 TEHN 执行语句
ELSE 执行语句
END IF;
示例如下:
DECLARE
i number;
str VARCHAR2(18) := 'b';
BEGIN
--数字判断
if(i = 6) THEN
NULL; -- 如果什么都不做建议写null,保证语句的完整性
ELSIF(i is null) THEN
dbms_output.put_line('null');
ELSE
dbms_output.put_line('null');
END IF; -- 字符串判断
if(str = 'a') THEN
dbms_output.put_line('if');
ELSIF (str = 'b') THEN
dbms_output.put_line('elsif');
ELSE
dbms_output.put_line('else');
END IF;
END;
b、CASE语句
语法如下:
1、变量判断
CASE 变量
WHEN 值 THEN 执行语句
WHEN 值 THEN 执行语句
END CASE;
2、表达式判断
CASE
WHEN 表达式 TEHN 执行语句
WHEN 表达式 TEHN 执行语句
END CASE;
示例代码如下:
DECLARE
str VARCHAR2(18) := 'B';
num NUMBER := 60;
strresult VARCHAR2(10);
numresult VARCHAR2(10);
BEGIN
-- 变量判断
CASE str
WHEN 'A' THEN strresult := '优秀';
WHEN 'B' THEN strresult := '良好';
WHEN 'C' THEN strresult := '合格';
WHEN 'D' THEN strresult := '不及格';
END CASE;
--表达式判断
CASE
WHEN num < 60 THEN numresult := '不及格';
WHEN num < 70 THEN numresult := '合格';
WHEN num < 70 THEN numresult := '良好';
WHEN num < 70 THEN numresult := '优秀';
END CASE; dbms_output.put_line(strresult);
dbms_output.put_line(numresult);
END;
2、循环语句
a、LOOP语句
语法如下:
LOOP
执行语句
EXIT WHEN 条件
END LOOP;
示例代码:
DECLARE
i NUMBER := 0 ;
BEGIN
LOOP
i := i + 1 ;
dbms_output.put_line (i) ;
EXIT WHEN i = 5 ;
END LOOP ;
END ;
b、WHILE语句
语法如下:
WHILE 条件 LOOP
执行语句
END LOOP;
-- 打印i每次增加后的值
DECLARE
i NUMBER := 0 ;
BEGIN
WHILE i < 5 LOOP
i := i + 1 ;
dbms_output.put_line ('i:' || i) ;
END LOOP ;
END ;
c、FOR语句
语法如下:
FOR 变量 IN (REVERSE) 数字 .. 数字 LOOP
执行语句
END LOOP;
加上REVERSE就是数字的逆序。
示例代码如下:
-- index 是for开始就定了的
BEGIN
-- 打印1到5之前的数
FOR i IN 1 .. 5 LOOP
dbms_output.put_line ('i:' || i) ;
END LOOP ;
-- 打印5-到20的数,逆序打印
FOR j IN REVERSE 5 .. 20 LOOP
dbms_output.put_line ('j:' || j) ;
END LOOP ;
END ;
3、顺序语句
a、GOTO语句
语法如下:
GOTO label;
GOTO语句一般都是由某行跳到另外一行。
示例代码如下:
DECLARE
i NUMBER := 1 ;
BEGIN
loop
dbms_output.put_line (i) ;
i := i + 1 ;
IF i = 10 THEN
GOTO label ;
END IF ;
END loop ;
<< label >>
dbms_output.put_line ('label') ;
END;
本例子就i一直循环加一,当i等于10时,跳出循环,跳到第11行并执行。
PL/SQL之--流程控制语句的更多相关文章
- Sql Server 流程控制语句
T-SQL中用来编写流程控制模块的语句有:BEGIN...AND语句.IF...ELSE语句.CASE语句.WHILE语句.GOTO语句.BREAK语句.WAITFOR语句和RETURN语句. 批处理 ...
- PL/SQL 03 流程控制
--IF语法IF condition THEN statements;[ELSIF condition THEN statements;][ELSE statements;]END IF; -- ...
- PL/SQL流程控制语句
PL/SQL流程控制语句介绍PL/SQL的流程控制语句, 包括如下三类:控制语句: IF 语句循环语句: LOOP语句, EXIT语句顺序语句: GOTO语句, NULL语句①if语句 IF < ...
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ...
- oracle数据库之PL/SQL 流程控制语句
介绍 PL/SQL 的流程控制语句, 包括如下三类: 1.控制语句: IF 语句 2.循环语句: LOOP 语句, EXIT 语句 3.顺序语句: GOTO 语句, NULL 语句 一 条件语句 IF ...
- PL/SQL程序设计、流程控制
PL/SQL是 Procedure Language & Structured Query Language 的缩写 PL/SQL是对SQL语言存储过程语言的扩展 PL/SQL程序由三个块组成 ...
- 【强烈强烈推荐】《ORACLE PL/SQL编程详解》全原创(共八篇)--系列文章导航
原文:[强烈强烈推荐]<ORACLE PL/SQL编程详解>全原创(共八篇)--系列文章导航 <ORACLE PL/SQL编程详解> 系列文章目录导航 ——通过知识共享树立个人 ...
- 浅谈PL/SQL语言基础
在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下 ...
- Oracle中PL/SQL的执行部分和各种流程控制
Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...
随机推荐
- 数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0
题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemshow.php Mean: 略. analyse: 刚开始想了半天都没想出来,数据这么大,难道是有什么 ...
- 重构第24天 分解复杂的判断(Remove Arrowhead Antipattern)
理解: 当你的代码中有很深的嵌套条件时,花括号就会在代码中形成一个长长的箭头.我们经常在不同的代码中看到这种情况,并且这种情况也会扰乱代码的可读性. 如下代码所示,HasAccess方法里面包含一些嵌 ...
- 泛函编程(17)-泛函状态-State In Action
对OOP编程人员来说,泛函状态State是一种全新的数据类型.我们在上节做了些介绍,在这节我们讨论一下State类型的应用:用一个具体的例子来示范如何使用State类型.以下是这个例子的具体描述: 模 ...
- 开源论坛MvcForum推荐
MvcForum算是Asp.net中开源论坛佼佼者之一.主要使用ASP.NET MVC 5 &Unity & Entity Framework 6,有较强的可撸性.是论坛开发者的不二之 ...
- [Tool] 使用CodeMaid自动程序排版
[Tool] 使用CodeMaid自动程序排版 前言 「使用StyleCop验证命名规则」这篇文章,指引开发人员透过StyleCop这个工具,来自动检验项目中产出的程序代码是否合乎命名规则. [Too ...
- Play Framework框架 JPA惯用注解
Play Framework框架 JPA常用注解 1.@Entity(name=”EntityName”) 必须 ,name 为可选 , 对应数据库中一的个表 2.@Table(name=”" ...
- css清除浮动定位造成的异常
清除浮动是为了解决高度塌陷的问题:内层有好几个div有宽有高,并且选择了浮动定位,但是外层的div却并没有设置宽高.在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动( ...
- windows下启动mongodb
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#mongodb-as-a-windows-service C:\ ...
- javascript宿主对象之window.history
window.historys属性允许我们操作同一个浏览器回话中的已访问页面,例如我们可以看到在这之前我们浏览页面的数量: window.history.length 由于隐私保护,我们无法获取这些页 ...
- 汉化入门之ExplorerControls
第一次汉化,高手勿喷. 01.问题描述 在ArcGIS中有个添加数据窗口,如果在应用程序中直接调用它,则风格一致性则存在问题,很多时间我们都自定义添加数据窗口,我曾经也尝试过.详见ExplorerCo ...