oracle存储过程----case条件控制语句的用法

2023-11-05

上一篇 oracle存储过程—-赋值、相等、分支的写法

oracle存储过程—-case条件控制语句的用法

  今天又看到了另一种条件控制的方法case

case语句可以分为两种类型:

  1. 一种是简单的case语句,它给出一个表达式,并把表达式结果同提供的几个可预见的结果作比较,如果比较成功,则执行对应的语句序列。
  2. 另一种是搜索式的case语句。它会提供多个布尔表达式,然后选择第一个为true的表达式,执行对应的脚本。
1.简单case语句

  简单case的语法如下:

create or replace procedure test_case_procedure(idnum varchar)
as
v_ly_ds ly_ds%rowtype;
begin
select * into v_ly_ds from ly_ds where id=idnum;
case v_ly_ds.ly_nb
when '女' then
dbms_output.put_line('女人');
when '男' then
dbms_output.put_line('男人');
else
dbms_output.put_line('人妖');
end case;
end;

  分别输入 12 调用后的结果如下:

匿名块已完成
男人

匿名块已完成
女人

  从上边来看,case 的简单语法如下:

case 标志
when 参数1 then
语句块1;
when 参数2 then
语句块2;
else
语句块3;
end case;

  执行过程中是,从上到下,依次拿when 后边的参数,分别与上边的标志 进行比较,相等 则进入。
  另外,上边的else 如果不写,假如没有符合条件的when ,则会抛出CASE_NOT_FOUND 异常。

2.搜索式case语句

  搜索式case与简单式差不多,只不过是搜索式的这种,case后边是没有参数的。
将上边的例子,修改后如下,即是搜索式case:

create or replace procedure test_case_procedure(idnum varchar)
as
v_ly_ds ly_ds%rowtype;
begin
select * into v_ly_ds from ly_ds where id=idnum;
case 
when  v_ly_ds.ly_nb='女' then
dbms_output.put_line('女人');
when  v_ly_ds.ly_nb='男' then
dbms_output.put_line('男人');
else
dbms_output.put_line('人妖');
end case;
end;

  执行过程与上边相同。
  从上边来看,搜索式的case语法如下:

case 
when 条件1 then
语句块1;
when 条件2 then
语句块2;
else
语句块3;
end case;

  执行过程中是,从上到下,依次看when 后边的条件是否为truetrue 则进入。
  另外,上边的else 如果不写,假如没有符合条件的when ,也会抛出CASE_NOT_FOUND 异常。

下一篇 oracle存储过程—-异常的写法介绍

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle存储过程----case条件控制语句的用法 的相关文章

  • Spring Cloud Alibaba 项目搭建流程

    Spring Cloud Alibaba 项目搭建 1 项目结构搭建 springcloudalibaba xmn pom xml gateway server 1030 网关 user common 公共类 order server 10
  • ElasticSearch条件查询,高亮查询,聚合查询,以及映射关系

    1 在上一篇文章中我们已经做过了创建索引和简单的文档数据的增删改查 今天我们的核心是文档数据的查询 当然在后期我们也会用java数据来操作数据 上一期 我们的索引库是shopping 今天我们再来回忆一下 这就是查询索引库中 所有的信息 接
  • 使用electron 将网页打包成应用程序

    需求 将一个已经上线的后台管理系统 只兼容Chrome 打包成一个不需要谷歌浏览器就可以运行的软件 需要安装 npm install electron g npm install electron packager g WinRAR解压工具
  • 最高分数的学生姓名

    include
  • JDBC第三讲

    目录 三 Dao模式 1 Dao模式概念 2 Dao模式的组成 3 具体代码 3 1 BaseDao 3 2 Dao接口 3 3 Dao接口的实现 3 4 实体类 3 5 测试类 三 Dao模式 1 Dao模式概念 前面我们在使用JDBC时
  • Jetpack学习之MVVM实战

    MVVM架构与Jetpack MVVM即Model View ViewModel的缩写 它的出现是为了将图形界面与业务逻辑 数据模型进行解耦 MVVM也是Google推崇的一种Android项目架构模型 而Jetpack组件 大部分是为了能
  • 小干货:Linux 系统的备份恢复

    作者 LeoLan s Blog https reurl cc gm5ZkQ tar 命令 副本 本机备份整个系统 以后还原还是还原到本机 注意根目录下要有充足的可用空间用于备份 cd tar gz格式 tar cvpzf system b
  • visual studio 2019账号登陆不上去问题解决

    网上多数解决方案是选择账户选项 然后把嵌入式web改为系统式web 但我用打开登陆选项 发现我就是系统式web 所以此方法行不通 但我观察到登陆选项中有设备代码选项 于是我就选了此选项 然后选择了登陆 此时它跳出来一个选项 根据提示只要在另
  • 单片机——独立按键控制

    1 基本定义与初始化 include
  • 2021秋招复习——计算机网络

    文章目录 总流程 浏览器缓存 资源缓存的位置 三级缓存原理 浏览器缓存的分类 强缓存 协商缓存 Last Modify If Modify Since ETag If None Match 浏览器缓存的优点 DNS 什么是DNS DNS解析
  • 边缘检测Sobel、laplacian、canny算子

    1 图像边缘检测 图像边缘检测对于分析图像中的内容 实现图像中物体的分割 定位等具有重要的作用 边缘检测大大减少了源图像的数据量 剔除了与目标不相干的信息 保留了图像重要的结构属性 常用的图像边缘检测方法分为以下两种 一阶导数的边缘算子 通
  • Linux PWM 驱动实验

    一 PWM 驱动简析 1 设备树下的 PWM 控制器节点 I MX6ULL 有 8 路 PWM 输出 因此对应 8 个 PWM 控制器 所有在设备树下就有 8 个PWM 控制器节点 这 8 路 PWM 都属于 I MX6ULL 的 AIPS
  • [Codeforces] combinatorics (R1600) Part.7

    Codeforces combinatorics R1600 Part 7 题单 https codeforces com problemset tags combinatorics 1201 1600 1534C Little Alawn
  • 用Python爬虫技术怎么挣点小钱,这四种方法可行

    提醒 抓取的数据如果要商业化 要小心知识产权问题噢 还要提醒一点 抓取和处理这些数据的代价要小于人工处理的代价 使用爬虫代替人工才有价值 我利用Python爬虫技术赚点小钱方式 在正式聊Python爬虫技术之前 先来说说挣钱的事 说说作为一
  • react组件的render方法

    一个组件类必须要实现一个 render 方法 这个 render 方法必须要返回一个 JSX 元素 必须要用一个外层的 JSX 元素把所有内容包裹起来 返回并列多个 JSX 元素是不合法的 错误的写法 render return div 第

随机推荐

  • 计算机显示丢失d3dcompiler,无法启动此程序提示缺少d3dcompiler文件怎么解决

    有用户说他在打开某个程序时 系统却提示说无法启动此程序提示缺少d3dcompiler文件的情况 这可能是在系统更新时出现错误导致的 那么无法启动此程序提示缺少d3dcompiler文件怎么解决呢 很简单安装一个更新包即可解决 下面小编给大家
  • [培训-无线通信基础-7]:信道均衡器(信道估计、信道均衡)

    作者主页 文火冰糖的硅基工坊 https blog csdn net HiWangWenBing 本文网址 https blog csdn net HiWangWenBing article details 118832368 目录 引言
  • FFT算法(Java实现)

    FFT导论 转载自FFT导论 FFT是离散傅立叶变换的快速算法 可以将一个信号变换到频域 有些信号在时域上是很难看出什么特征的 但是如果变换到频域之后 就很容易看出特征了 这就是很多信号分析采用FFT变换的原因 另外 FFT可以将一个信号的
  • 通过Java操作Kafka

    通过Java操作Kafka 前置知识 https editor csdn net md articleId 125883056 创建maven项目 导入kafka客户端依赖
  • C#生成二进制文件

    文章目录 用C 将文本MAC地址生成二进制文件 使用C 将字符串生成二进制文件 为什么用C 来开发这个简单的上位机 用C 将文本MAC地址生成二进制文件 using System using System Collections Gener
  • wangEdit大致使用

    1 先导入 两种方式任选其一 yarn add wangeditor editor for vue next npm install wangeditor editor for vue next save 2 创建富文本框组件 以下是vue
  • 51单片机学习笔记(五) -独立按键&&外部中断

    文章目录 一 按键的工作原理 1 原理图 2 按键的工作原理 二 使用轮询法处理按键 1 通过按键来点亮LED 2 键值检测与显示 3 按键消抖 4 完整的按键检测 四 使用中断检测按键 1 功能要求 2 外部中断INT0和INT1 3 代
  • oracle约束+disable与enable约束+为表添加约束+修改表约束的状态+primary key+not null+unique+foreign key+外键删除数据,可以使用的级联操作...

    oracle约束 分类 表级约束 应用于表 对表的多个列起作用 或者说定义所有列后 再定义约束 not null 约束只能在列级上 列级约束 应用于表的一列 只对该列起作用 或者说定义列的同时定义约束 disable与enable约束 控制
  • Java中队列的实现(2)-使用单向链表以及实现

    队列 Queue 是另一种被限制过的线性表 它是固定一端来插入数据元素 另一端只删除元素 也就是说队列中的元素移动是固定的 就像超市收银台一样 一边是进的 一边是出的 而且是先进入的首先获得服务的 队列是一个特殊的线性表 它只允许在表的前端
  • 国产数据库排行

    目录 一 理论 1 国产数据库排行 2 数据 一 理论 1 国产数据库排行 1 墨天轮榜单 墨天轮国产数据库流行度排行于2019年6月推出 通过近50个维度的数据来考察近300个国产数据库的流行度排行 每月1日更新排行数据 用于体现国产数据
  • vue踩坑记录—elementui样式引入失败

    出现的问题 F12没有任何报错 elementui可以引入组件 但是组件的样式不显示 首先检查项目的插件和依赖是否安装 命令行运行vue ui 在可视化界面里可以安装 插件 vue cli plugin element 依赖 开发依赖 el
  • java 附近的人

    传送门 思路清晰 详述了坐标取附近的人的功能
  • 论文参考文献插入方法(一)

    本文使用的是word2016 word2010及以上操作方法应该相同 第一步 参考文献编号 首先在 参考文献 字后面新起一行 从 开始 里面选择 插入编号 选择圆圈中的那种编号格式 参考文献的编号格式 这是就会自动出现编号 1 插入文献后回
  • Python爬虫副业真的可行吗?能赚多少?

    首先回答你 python爬虫能当副业 副业的方式比较多 等下我会讲几种 到哪个层次能接单 主要看你是接什么样的单 爬一些资料 视频这种简单的学一两个月就没什么问题 复杂的那就需要系统的学习 爬虫原理 html相关知识 urllib urll
  • python实现爬取微博相册所有图片

    微博相册的批量爬取 文章目录 前言 一 分析实现思路 二 编写代码 1 引入库 2 多进程的编写 3 主函数的编写 结果 前言 微博有相册功能 那么我们如何批量下载相册中的所有照片呢 提示 以下是本篇文章正文内容 下面案例可供参考 一 分析
  • python中统计单词出现的次数_python统计文本中每个单词出现的次数

    python统计文本中每个单词出现的次数 coding utf 8 author zcg import collections import os with open abc txt as file1 打开文本文件 str1 file1 r
  • myBatis入门程序介绍

    前言 Mybaits框架也称为对象关系映射 ORM 框架 它通过描述java对象与数据库表之间映射关系 自动的将java应用程序中的对象持久化到关系型数据库中 这些功能的完成主要依赖两种配置文件 主配置文件 通常叫做 mybaits con
  • 【云原生之Docker实战】使用docker部署mm-wiki文档系统

    云原生之Docker实战 使用docker部署mm wiki文档系统 一 mm wiki介绍 1 mm wiki简介 2 mm wiki特点 二 检查本地docker环境 1 检查本地docker版本 2 检查docker状态 3 检查do
  • 京东到家技术解密

    京东到家技术解密 京东到家相信很多人都听过 是一个短短两年内依靠技术与产品崛起的公司 其中项目的划分 技术的选型又是怎么样子呢 本课程目标用户群体是工作过几年的攻城狮 在项目中取得了一定的成就 但是缺少O2O 电商 新零售领域的工作经验 却
  • oracle存储过程----case条件控制语句的用法

    上一篇 oracle存储过程 赋值 相等 分支的写法 oracle存储过程 case条件控制语句的用法 今天又看到了另一种条件控制的方法case case语句可以分为两种类型 一种是简单的case语句 它给出一个表达式 并把表达式结果同提供