ITPub博客

首页 > 数据库 > Oracle > Oracle中的NO_DATA_FOUND系统变量

Oracle中的NO_DATA_FOUND系统变量

原创 Oracle 作者:ITtomilk 时间:2015-11-10 11:26:24 0 删除 编辑
一、过程中NO_DATA_FOUND的用法:

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

点击(此处)折叠或打开

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

2.插入一条数据

点击(此处)折叠或打开

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


3.现在表里面只有一条数据,值为1;
4.写入如下命令

点击(此处)折叠或打开

  1. [sql]
  2. DECLARE
  3.    v_tmp NUMBER := 0;
  4. BEGIN
  5.    SELECT f_id
  6.      INTO v_tmp
  7.      FROM lengzijiantest
  8.     WHERE f_id = 2;
  9. EXCEPTION
  10.    WHEN NO_DATA_FOUND
  11.    THEN
  12.       DBMS_OUTPUT.put_line ('找不到数据');
  13. END;
 
5.因为数据库中只有1的数据,该条语句会打印出“找不到数据”;

二、不起作用的NO_DATA_FOUND
如果把sql写成如下方式,则不会打印“找不到数据”

点击(此处)折叠或打开

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


6.具体原因是由于在sql中使用了聚合函数,当使用聚合函数时,NO_DATA_FOUND是不起作用的,在此记录下问题。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30260000/viewspace-1826794/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-05-25

  • 博文量
    42
  • 访问量
    78523