oracle数据库存储过程中NO_DATA_FOUND不起作用

1.首先创建一个表lengzijiantest,表中只有一个字段f_id

1
2
3
4
5
[cpp]
CREATE TABLE LENGZIJIANTEST 
  F_ID  NUMBER                                  NOT NULL 
)

2.插入一条数据

1
2
[cpp]
insert into lengzijiantest values (1)

3.现在表里面只有一条数据,值为1;

4.写入如下命令

1
2
3
4
5
6
7
8
9
10
11
12
13
[sql]
DECLARE 
   v_tmp   NUMBER := 0; 
BEGIN 
   SELECT f_id 
     INTO v_tmp 
     FROM lengzijiantest 
    WHERE f_id = 2; 
EXCEPTION 
   WHEN NO_DATA_FOUND 
   THEN 
      DBMS_OUTPUT.put_line ('找不到数据'); 
END;

5.因为数据库中只有1的数据,该条语句会打印出“找不到数据”;如果把sql写成如下方式,则不会打印“找不到数据”

1
2
3
4
5
6
7
8
9
10
11
12
13
[sql]
DECLARE 
   v_tmp   NUMBER := 0; 
BEGIN 
   SELECT min(f_id) 
     INTO v_tmp 
     FROM lengzijiantest 
    WHERE f_id = 2; 
EXCEPTION 
   WHEN NO_DATA_FOUND 
   THEN 
      DBMS_OUTPUT.put_line ('找不到数据'); 
END;

6.具体原因是由于在sql中使用了聚合函数,当使用聚合函数时,NO_DATA_FOUND是不起作用的,在这一点上也吃了小亏,不过问题不大,在此记录下问题。

oracle数据库存储过程中NO_DATA_FOUND不起作用解决的更多相关文章

  1. oracle数据库存储过程中NO_DATA_FOUND不起作用?

    1.首先创建一个表lengzijiantest,表中只有一个字段f_id CREATE TABLE LENGZIJIANTEST ( F_ID NUMBER NOT NULL ) 2.插入一条数据 i ...

  2. oracle数据库存储过程中的select语句的位置

    导读:在oracle数据库存储过程中如果用了select语句,要么使用"select into 变量"语句要么使用游标,oracle不支持单独的select语句. 先看下这个存储过 ...

  3. Oracle数据库脚本中的set define off

    2018年8月6日15:11:34 Oracle数据库脚本中的set define off 前言 最近在公司写需求,接触到脚本,第一句set define off;就不知道什么意思了,查询后记录之. ...

  4. Oracle 数据库表中已有重复数据添加唯一键(唯一约束)

    Oracle 数据库表中已有重复数据添加唯一键(唯一约束) 问题描述 以 demo 举例,模拟真实场景. 表 TEST_TABLE 有如下字段和数据:id 是主键,code 没有设置键和索引 ID C ...

  5. oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号?

    Oracle 语句中“||”代表什么啊? oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号? 排序的话,用order by来处理即可.比如:cola123a234b999b335s ...

  6. 在oracle数据库表中没有添加rowid字段为什么会出现?

    rowid 是 oracle 数据库表中的伪列, rowid 首先是一种数据类型,它唯一标识一条记录物理位置, 基于64位编码的18个字符显示.因为 rowid 是伪列, 所以并未真的存储在表中,但可 ...

  7. 编程开发之--Oracle数据库--存储过程在out参数中使用光标(3)

    在本系列学习随笔中的第2节我们留下了2个问题,我们现在讨论在out参数中使用光标. 1.要在out参数中使用光标,我们需要申明一个包的结构,包的结构分为包头和包体,包头只负责申明,包体只负责实现.包头 ...

  8. ORACLE在存储过程中记录日志的处理包

    Java开发过程中一般使用LOG4J来将程序的运行日志记录到文件中,在ORACLE存储过程中也需要记录日志,我将工作中自己整理的一个记录日志的包分享出来,其实很简单,希望大家多提意见. 一.表结构 为 ...

  9. Oracle数据库—— 存储过程与函数的创建

    一.涉及内容 1.掌握存储过程与函数的概念. 2.能够熟练创建和调用存储过程与函数. 二.具体操作 1.创建存储过程,根据职工编号删除scott.emp表中的相关记录. (1)以scott 用户连接数 ...

随机推荐

  1. Win10搜索不能用

    使用win10进行搜索时,一直显示win10特色的滚动条,但就是检索不出东西,我的主要是检索不到windows的内容: (个人感觉使用win10检索网页内容不太专业,就关闭了Web搜索) 最后有发现网 ...

  2. 使用html+css+js实现计算器

    使用html+css+js实现计算器,开启你的计算之旅吧 效果图: 代码如下,复制即可使用: <!DOCTYPE html><html lang="en"> ...

  3. 组件化表单解决方案AForm 1.3 发布

    v1.3 更新日志 输入控件的实现改为实例化模式,同类型多个输入控件在同一个表单不会冲突 输入控件实现了继承 可以使用AForm.create创建表单,和使用new AForm创建实例的参数和结果一样 ...

  4. python对象学习

    python对象的介绍 python使用对象模型来存储数据,构造任何类型的值都是一个对象,尽管python被当成面向对象的编程语言,但是完全编写不使用任何类和实例的脚本.所有的python对象都拥有三 ...

  5. OA项目Spring.Net代替抽象工厂(三)

    Servrvice层的代码: <?xml version="1.0" encoding="utf-8" ?> <objects xmlns=& ...

  6. KnockoutJs学习笔记(一)

    由于工作需要,接触到了Knockout,但是之前对于前台开发真的是不太了解,只能是摸着石头过河,边学边实践了. Knockout的官方网站是:http://knockoutjs.com/.我也是跟着官 ...

  7. drools7 (一、最简单的例子)

    切记!!! 必须使用jdk1.8 工程目录 引入依赖包,pom.xml <?xml version="1.0" encoding="UTF-8"?> ...

  8. day5模块学习--sys模块

    sys模块 sys模块是处理与系统相关的模块,sys(system),下面来看看sys模块常用的方法: 1.sys.argv         #命令行参数list,第一个元素是程序本身路径 2.sys ...

  9. A - Superset CodeForces - 97B(人生第一个分治法,感觉,像二分啊。。)

    /* 分治法,第一次做不是很懂,借鉴了神犇代码,但实操之后感觉像二分,,可能做得少了或者就是.... */ 题目大意: 一个集合里有若干点,要求你添加某些点后保证这个集合里的任意两点满足以下三个条件中 ...

  10. Android中selector背景选择器

    http://blog.csdn.net/forsta/article/details/26148403 http://blog.csdn.net/wswqiang/article/details/6 ...