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,如需转载请自行联系原作者
相关文章
|
5天前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
15天前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
30 10
|
21天前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
17天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之Oracle数据库是集群部署的,怎么进行数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
23天前
|
Oracle 关系型数据库 数据库
Oracle数据库备份脚本分享-Python
Oracle数据库备份脚本分享-Python
22 0
|
24天前
|
SQL 关系型数据库 MySQL
【揭秘】MySQL binlog日志与GTID:如何让数据库备份恢复变得轻松简单?
【8月更文挑战第22天】MySQL的binlog日志记录数据变更,用于恢复、复制和点恢复;GTID为每笔事务分配唯一ID,简化复制和恢复流程。开启binlog和GTID后,可通过`mysqldump`进行逻辑备份,包含binlog位置信息,或用`xtrabackup`做物理备份。恢复时,使用`mysql`命令执行备份文件,或通过`innobackupex`恢复物理备份。GTID模式下的主从复制配置更简便。
108 2
|
19天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
|
23天前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
1天前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
20天前
|
人工智能 小程序 关系型数据库
【MySQL】黑悟空都掌握的技能,数据库隔离级别全攻略
本文以热门游戏《黑神话:悟空》为契机,深入浅出地解析了数据库事务的四种隔离级别:读未提交、读已提交、可重复读和串行化。通过具体示例,展示了不同隔离级别下的事务行为差异及可能遇到的问题,如脏读、不可重复读和幻读等。此外,还介绍了在MySQL中设置隔离级别的方法,包括全局和会话级别的调整,并通过实操演示了各隔离级别下的具体效果。本文旨在帮助开发者更好地理解和运用事务隔离级别,以提升数据库应用的一致性和性能。
96 2
【MySQL】黑悟空都掌握的技能,数据库隔离级别全攻略

推荐镜像

更多