zoukankan      html  css  js  c++  java
  • 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是不起作用的,在这一点上也吃了小亏,不过问题不大,在此记录下问题。
  • 相关阅读:
    计算机网络
    RedHat 7本地yum源的配置
    linux 查看电脑信息
    liunx下的网络配置
    缺陷是什么
    linux下的yum的安装和配置
    软件测试术语总结
    Loadrunner相关流程
    防火墙的相关概念
    软件测试W模型
  • 原文地址:https://www.cnblogs.com/soundcode/p/6526564.html
Copyright © 2011-2022 走看看