NO_DATA_FOUND.Exception 如何触发?有点不明白了,
我写了个最简单的SQL ,为什么不能触发?
    ....
    SELECT count(*) INTO v_NUM FROM dual where 1=2;
           
EXCEPTION
   WHEN NO_DATA_FOUND THEN
        po_error_info := to_char(v_NUM) ;
   WHEN OTHERS THEN
        po_error_info :='Proc : ' + SUBSTR(SQLERRM, 1, 100);
END Proc;

解决方案 »

  1.   

    因为你的select肯定返回一个0,并不是无返回值。可以select一个字段
      

  2.   

    NO_DATA_FOUND.Exception 你可以理解为SQL没有找出东西来网变量里面放的时候会触发, 像count这种函数的话虽然where后面不成立,但是有东西往变量里面放,就是0,所以不会触发。
      

  3.   

    你的count(*) 永远都是有结果的,你可以查询一个字段,然后就会触发该事件
      

  4.   

    看一下:no_data_found 、 sql%notfound 和 sql%rowcount三种异常的区别,你就会明白,你的程序为什么不能触发no_data_found的异常
      

  5.   


    no_data_found 、 sql%notfound ,前面二种我明白了,
    sql%rowcount没用过,什么时候触发?
      

  6.   

    no_data_found be springed by ‘select *...into...’; 但*不能是count(*)、max或min函数
    sql%notfound be springed by ‘update ...’or ‘delete...’;