博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle数据库存储过程中NO_DATA_FOUND不起作用解决
阅读量:6879 次
发布时间:2019-06-27

本文共 764 字,大约阅读时间需要 2 分钟。

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是不起作用的,在这一点上也吃了小亏,不过问题不大,在此记录下问题。

转载地址:http://wnybl.baihongyu.com/

你可能感兴趣的文章
mysql join 的同时可以筛选数据
查看>>
Code First开发系列之管理并发和事务
查看>>
Spark SQL概念学习系列之为什么使用 Spark SQL?(二)
查看>>
VirtualBox-Linux系统安装增强功能
查看>>
ssh/ssh2登录
查看>>
mongodb对数组元素及内嵌文档进行增删改查操作(转)
查看>>
【python3.5】安装lxml中没有etree模块的问题解决方法
查看>>
pgpool-II的性能缺陷
查看>>
spin_lock浅析【转】
查看>>
MVC前台Post/Get异步获得数据时参数的取值问题
查看>>
8086/8088指令详解
查看>>
iOS:自定义代码块{ }
查看>>
C# 远程链接指定计算机,获取该计算机的计算机名等信息
查看>>
OpenGL入门笔记(十一)
查看>>
windowsXP用户被禁用导致不能网站登录
查看>>
第 8 章 TokyoCabinet/Tyrant
查看>>
智慧城市逐步推进 未来城市建设突破口分析
查看>>
是谁在推动路由器智能连接功能的普及?
查看>>
物联网软件更新政策不明 智能冰箱也易沦为犯罪工具
查看>>
基于 SaaS 解决库存问题, Nextail 获 160 万美元融资
查看>>