开发者社区> 小麋鹿666> 正文

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

简介:
+关注继续查看

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是不起作用的,在这一点上也吃了小亏,不过问题不大,在此记录下问题。
posted @ 2017-03-09 16:58 左正 阅读(306) 评论(0) 编辑 收藏
 

公告

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/6526564.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL使用链接服务器执行远程数据库上的存储过程
原文:SQL使用链接服务器执行远程数据库上的存储过程   --创建链接服务器 exec sp_addlinkedserver'server_tmp','','SQLOLEDB','远程服务器名或ip地址' exec sp_addlinkedsrvlogin'server_tmp','fa...
1277 0
C/C++封装库ocicpplib调用Oracle存储过程的方法
工作这么多年,一直使用Mysql, Oracle数据库没有接触过, 这次要使用C/C++语言来调用Oracle的存储过程, 懒得自己去看OCI的API了, 直接上网找别人封装的库, 最后发现了这个ocicpplib, 下载了看了一下, 还不错, 使用起来比较简单。
1168 0
云时代下的数据库存储——运筹帷幄的阿里云数据库MongoDB
2018年1月17-25日,NoSQL数据库直播大讲堂峰会顺利结束,阿里云数据库团队为大家带来了一场别开生面的知识盛会,给大家带来深度的数据库技术及产品分享。本文是《ApsaraDB for MongoDB》演讲整理,主要讲解了阿里云数据库MongoDB全面的产品体系介绍以及阿里云数据库MongoDB在备份、监控、安全等方面所做的一些优化细节的具体剖析。
6780 0
数据库存储图像及使用Image控件显示
在数据库中存取并显示到页面Image控件的功能。原来认为并不复杂,但是实际中却遇到了一些问题。 首先来看看保存图片: 图片在数据库中使用二进制方式存储,所以要把图片转化为二进制流文件在存储到数据库中,代码如下:     private void Save()     {         MyImage img = new MyImage();         img.
756 0
C# 调用存储过程操作 OUTPUT参数和Return返回值
本文转载:http://www.cnblogs.com/libingql/archive/2010/05/02/1726104.html   存储过程是存放在数据库服务器上的预先编译好的sql语句。使用存储过程,可以直接在数据库中存储并运行功能强大的任务。
902 0
数据库存储时间的时区问题
先说一下mysql中DATETIME和TIMESTAMP的区别 TIMESTAMP是标准的unix timestamp,它存储的是1970-1-1到现在经过的秒数,4字节存储。mysql用这个类型还蛮方便的,一个是有很多内置的函数和trigger来处理它,比如CURRENT_TIMESTAMP宏,最关键的是在取数据的时候mysql会自动帮你处理DST和时区的问题。 DATETIME的范围更
1922 0
SAP UI5 视图如何使用工程里的 sample data 作为 JSON model 的数据源
SAP UI5 视图如何使用工程里的 sample data 作为 JSON model 的数据源
22 0
+关注
385
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载