(五)PL/SQL条件控制
简述
决策结构需要程序员指定一个或多个条件要计算,或由程序进行测试,如果条件被确定为真那么一条或多条语句被执行,如果要被执行的其它语句条件被确定为假,则选其它执行块。
PL/SQL编程语言提供了以下几种类型的决策语句
语句 描述
| IF - THEN 语句 | IF语句关联的条件通过THEN和END IF关键字封闭的语句序列。 如果条件为真,则语句被执行,如果条件为假或NULL,则IF语句什么都不做 |
|---|---|
| IF-THEN-ELSE 语句 | IF语句添加关键字ELSE后面的语句的替代序列。如果条件为假或NULL,语句则只有替换序列得到执行。它确保任一陈述的序列的被执行 |
| IF-THEN-ELSIF 语句 | 它可以在几个方案之间进行选择 |
| Case 语句 | 像IF语句中,CASE语句选择要执行的语句一个序列。但是选择顺序,CASE语句使用一个选择而不是多个布尔表达式。一个选择器其值被用来选择多个选项之一的表达式 |
| Searched CASE 语句 | 所搜索的CASE语句没有选择,它的WHEN子句包含产生布尔值的搜索条件 |
| 内嵌IF-THEN-ELSE | 可以使用一个IF-THEN或IF-THEN-ELSIF语句中的另一个IF-THEN或IF-THEN-ELSIF声明 |
IF-THEN语句
IF (a <= 20) THEN
b:= b+1;
END IF;
IF-THEN-ELSE语句
IF 1 = 2 THEN
dbms_output.put_line('1 = 2')
ELSE
dbms_output.put_line('1 <> 2');
END IF;
IF-THEN-ELSIF语句
使用IF-THEN-ELSIF语句时有几点要牢记。
它是ELSIF, 而不是 ELSEIF
一个IF-THEN语句可以有零或一个ELSE语句,它必须跟从ELSIF语句。
一个IF-THEN语句可以有0到多个ELSIF,它们必须在ELSE之前。
一旦某个ELSIF成功,任何剩余的ELSIF或其他都不被测试。
DECLARE
a number(3) := 66;
BEGIN
IF ( a = 6 ) THEN
dbms_output.put_line('Value of a is 6' );
ELSIF ( a = 66 ) THEN
dbms_output.put_line('Value of a is 66' );
ELSIF ( a = 666 ) THEN
dbms_output.put_line('Value of a is 666' );
ELSE
dbms_output.put_line('the values is matching');
END IF;
dbms_output.put_line('the value of a is: ' || a );
END;
CASE语句
set serveroutput on
DECLARE
grade CHAR(1) := '&Guess';
BEGIN
CASE grade
when 'A' then dbms_output.put_line('AA');
when 'B' then dbms_output.put_line('BB');
when 'C' then dbms_output.put_line('CC');
when 'D' then dbms_output.put_line('DD');
when 'E' then dbms_output.put_line('EE');
else dbms_output.put_line('No such grade');
END CASE;
END;
搜索CASE语句
CASE
WHEN selector = 'value1' THEN S1;
WHEN selector = 'value2' THEN S2;
WHEN selector = 'value3' THEN S3;
...
ELSE Sn; -- default case
END CASE;
嵌套IF-THEN-ELSE语句
DECLARE
a number(3) := 100;
b number(3) := 200;
BEGIN
IF( a = 100 ) THEN
IF( b = 200 ) THEN
dbms_output.put_line('Value of a is 100 and b is 200' );
END IF;
END IF;
dbms_output.put_line('Exact value of a is : ' || a );
dbms_output.put_line('Exact value of b is : ' || b );
END;
(五)PL/SQL条件控制的更多相关文章
- PL/SQL 条件控制
------ PL/SQL 条件控制 IF-THEN语句 DECLARE a ) :; BEGIN a:; -- check the boolean condition using if statem ...
- PL\SQL结构控制、异常
PL\SQL结构控制 1.IF条件控制语句(三种基本方式+IF语句的嵌套使用) (1)IF... (2)IF...ELSE (3)IF...ELSIF. ...
- PL/SQL 使用控制流程
一.条件分支语句 1.if判断 IF <布尔表达式> THEN PL/SQL 和 SQL语句 END IF; 2.if else判断 IF <布尔表达式> THEN PL/SQ ...
- PL/SQL 条件控制语句
1.if-then 语句 语法: IF 条件 THEN 语句序列; END IF; 实例: DECLARE i ) :; BEGIN THEN dbms_output.put_line('True') ...
- oracle 树状结构递归 PL/SQL输出控制 包括空格输出控制
树状结构 存储过程中通过递归构建,类似BBS回帖显示,代码共三段: 建表,插入数据,创建存储过程显示: 1.create table article(id number primary key,con ...
- SQL记录-PLSQL条件控制
PL/SQL条件控制 决策结构需要程序员指定一个或多个条件要计算,或由程序进行测试,如果条件被确定为真那么一条或多条语句被执行,如果要被执行的其它语句条件被确定为假,则选其它执行块. 以下是从在大 ...
- PL/SQL 游标的使用
游标的使用 ①游标概念 为了处理SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息, 当中包含要处理的行的数目.一个指向语句被分析以后的表示 ...
- PL/SQL -->隐式游标(SQL%FOUND)
PL/SQL -->隐式游标(SQL%FOUND) 分类: SQL/PLSQL 基础2010-12-22 16:23 4084人阅读 评论(0) 收藏 举报 sqlexceptionoracle ...
- Oracle学习DaySix(PL/SQL续)
一.游标 在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实现.游标是一个指向上下文的句柄( handle)或指针.通过游标,PL/SQL 可以控制上下文区和处理语句时上 下文区会发生些 ...
随机推荐
- B 外地比赛
时间限制 : - MS 空间限制 : - KB 评测说明 : 1s,256m 问题描述 何老板带着信竞队的k个同学出去外地打比赛.到达目的地后,何老板就找了一家酒店,准备住下.酒店工作人员告诉何 ...
- git本地新建分支推送到远程
$ git checkout -b “分支名称”: 新建本地分支 $ git branch: 查看是否创建成功以及目前在哪个分支 $ gi ...
- readthedocs网托管持多语言文档
希望在readthedocs上创建支持多语言的文档,效果类似: 通过语言选项,可以切到到不同的语言版本:实现这个目标包含两个主要步骤: 在本地对文档进行翻译 在readthedocs.org上配置翻译 ...
- H5 布局 -- 让容器充满屏幕高度或自适应剩余高度
在前端页面布局中,经常会碰到要让容器充满整个屏幕高度或者剩余屏幕高度的需求.一般这时候都会想当然的使用 height:100% 这样的 CSS 来写. 这样写的话,当容器内内容很多的时候是没有问题的, ...
- Quil-delta-enhanced 简介
Quill 是一款时下非常热门的富文本编辑器,它拥有非常强大的扩展能力,可以让开发者根据自己的需要编写插件,使编辑器支持的内容类型更加丰富.它之所以能够拥有这么强大的扩展能力,一方面是因为它的架构和 ...
- bootstrapTable随机改变列颜色
{ title: '运单编号', field: 'waybillNumber', align: 'center', valign: 'middle', cellStyle: function (val ...
- Linux 下发送邮件
由于种种原因,需要由我这个兼职运维每天发送对账单文件给运营同学,故研究下 Linux 发送邮件,希望对大家有所帮助. 安装 # Centos,安装 mailx $ yum install -y mai ...
- python的pip怎样更新包 + pip的help翻译
1.pip下载安装 pip下载 进入https://pypi.python.org/pypi/pip,下载 .tar.gz压缩包 Linux安装pip # tar -xzvf pip-1.5.4.ta ...
- 接口测试中实际发生的几个问题——python中token传递
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:AFKplayer PS:如有需要Python学习资料的小伙伴可以加点 ...
- B - Bash and a Tough Math Puzzle CodeForces - 914D (线段树的巧妙应用)
题目大意:当输入2时,将p处的点的值修改为x, 当输入1时,判断区间[L,R]的gcd是否几乎正确,几乎正确的定义是最多修改一个数,使得区间[L,R]的gcd为x. 题解:用线段树维护一个gcd数组, ...