2.2.3程序控制语句

机构化程序设计语言分顺序、循环、分支3中结构,PL/SQL提供了一系列的控制和跳转语句来支持这3种结构。

1.条件控制语句
最常用的是IF-THEN-ELSE语句,IF用来检查指定表达式的条件:THEN在条件中的值为True时执行代码:ELSE在条件值为FalseNULL时执行代码。在IF条件中可以使用布尔表达式包含多个条件,也可以使用IF-THEN-ELSIF语句来进行多条件判断。

如果要判断的条件过多,可以使用CASE语句,CASE语句可以仅检查一次条件判断的值,然后判断这个值在多种条件下的实现。

create or replace function getMarkByCaseWhen(score in number) --传入学生成绩return  varchar2 is  --返回绩点v_mark varchar2(2);
begincasewhen score > 90 then  --根据成绩进行判断v_mark := 'A';when score > 80 thenv_mark := 'B';when score > 70 thenv_mark := 'C';when score >= 60 thenv_mark := 'D';when score < 60 thenv_mark := 'F';end case;return v_mark;
end;

代码使用了CASE-WHEN语句后,在调用时与IF-THEN-ELSE能产生相同的效果,但是两者有一个区别:当CASE发现一个when**子句不存在判断条件时,会触发异常。

2.循环控制语句
PL/SQL 提供了三种类型的循环,如下所示:
(1)简单循环:这是最基础的循环类型,包含LOOP-END LOOP和用来退出循环的EXIT方法。
(2)数字FOR式循环:将会循环指定次数退出循环。
(3)WHILE循环:仅当条件成立时才执行循环。
以下展示如何使用数字式FOR循环打印九九乘法口诀表,定义代码如下:

--通过循环打印输出九九乘法表declare--定义外层循环数v_num1 number;--定义内层循环数v_num2 number;
begin--第一层循环for v_num1 in 1 .. 9 loop--第二层循环从1开始到第一层结束for v_num2 in 1 .. v_num1 loopdbms_output.put(v_num2 ||'*'|| v_num1||'='||v_num1*v_num2||'  ');end loop;dbms_output.put_line('');end loop;end;

结果

为了打印九九乘法口诀表,使用了两个FOR循环,内层FOR根据外层FOR的循环次数来决定最大的计数。

PL/SQL 002---PL/SQL的基本能概念--2.2语言特性--2.2.3程序控制语句相关推荐

  1. oracle pl sql注意问题,Oracle PL/SQL编写PL/SQL代码的注意事项

    (1)几个值得注意的关键字(2)变量常量赋值注意: ---------------------------------------------------------------------[@mor ...

  2. ebs oracle pl sql开发_PL/SQL设置

    1.PL/SQL Developer记住登陆密码 再使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码: 设置方法:PL/SQL ...

  3. oracle 的遍历语法,oracle pl/sql之pl/sql语法

    一.pl/sql基础 pl/sql分匿名块和命名块. 命名块:存储过程,函数,触发器,包等. pl/sql语句块分3部分: (1)声明部分 (2)可执行部分 (3)异常处理部分 其中可执行部分是语句块 ...

  4. PL SQL导入导出sql/dmp文件

    导出步骤: 1.tools ->export user object (导出的是建表语句(包括存储结构),选择选项,导出.sql文件 2.tools ->export tables-> ...

  5. 如何在Oracle数据库内格式化SQL或PL/SQL ?

    点击上方"蓝字" 关注我们,享更多干货! 在一些情况下,梳理复杂的SQL或PL/SQL代码逻辑时最好是格式化一下文本. 当然我们有Toad或PL/SQL Developer等其它第 ...

  6. t–sql pl–sql_不正确SQL Server统计信息– SQL查询性能的杀手–基本知识

    t–sql pl–sql 什么是SQL Server统计信息? (What are SQL Server statistics?) SQL Server statistics are a collec ...

  7. Oracle PL/SQL 编程手册(SQL大全)

    一.SQLPLUS 1引言 SQL命令 以下17个是作为语句开头的关键字: alterdroprevoke auditgrantrollback* commit*insert ...

  8. 线上分享丨自治时代DBA的技能库:SQL和PL/SQL的深度编程(附上期PPT和视频)-云和恩墨大讲堂201905...

    云和恩墨大讲堂又和大家见面了! 2018年云和恩墨大讲堂走过了祖国的大好河山,从大连到海口,从上海到昆明--不知道我们的课堂里有没有出现过你的身影. 2019我们也不会停下分享的脚步.不过这一次,我们 ...

  9. ORACLE PL/SQL编程--PL/SQL块结构和组成元素

      本篇主要内容如下: 2.1   PL/SQL块 2.2   PL/SQL结构 2.3   标识符 2.4   PL/SQL 变量类型 2.4.1  变量类型 2.4.2  复合类型 2.4.2.1 ...

最新文章

  1. MFC EDIT控件的使用记录
  2. python mysql 分号_Python中使用MySQL
  3. linux服务器选ubantu或centos_如何通过SSH连接阿里云上的Linux系统
  4. 双层板在哪层覆铜_PCB覆铜箔层压板分类和工艺解析
  5. 表格存储TableStore全新升级,打造统一的在线数据存储平台!
  6. php设置表格边框颜色,HTML表格标记教程(38):表头的边框色属性BORDERCOLOR
  7. Java按行分割文件
  8. 深入理解C语言指针的奥秘-4
  9. 学历真的改变能命运? | 数据告诉你
  10. mysql客户端字符集_设置MySQL客户端连接使用的字符集
  11. SD-WAN 系列--企业专线、企业互联网
  12. 【毕业设计】大数据工作岗位数据分析与可视化 - python flask
  13. C. Dominant Piranha
  14. 故障模块名称: mso.dll
  15. win 7系统出现计算机内存不足,win7系统计算机内存不足的解决方法
  16. 微信小程序开发部署上线流程
  17. 火狐浏览器主页被篡改的解决办法!
  18. 从表征到行动---意向性的自然主义进路(续八)
  19. PARL源码走读——使用策略梯度算法求解迷宫寻宝问题
  20. 恶意代码Lab11-03分析

热门文章

  1. 【Blog.Idp开源】支持在线密码找回
  2. 【对讲机的那点事】免费的公网对讲机平台你敢用吗?
  3. SVN中trunk、branches、tag的使用
  4. 社群运营,用户转化工作该怎么做?
  5. GOPROXY 中国代理
  6. c/c++函数 -strtol strtoll strtoul strtoull解读
  7. 判断两个树是否相同判断一棵树是否是一棵树的子树
  8. java提取PDF文件文本
  9. 【论文速递】EMNLP2022-随机模态缺失情况下的多模态情感分析
  10. git修改提交的commits信息