begin
....
select sum(a) into b from table1;
EXCEPTION                                                                                 when NO_DATA_FOUND THEN  DBMS_OUTPUT.PUT_LINE();
 amount(i):=0.00;
end;  在select sum(a) into b from table1结果为空时,为什么
when NO_DATA_FOUND THEN  DBMS_OUTPUT.PUT_LINE();
 amount(i):=0.00;没有执行了?

解决方案 »

  1.   

    begin
    ....
    select count(a),sum(a) into :a,:b from table1;
        if a = 0 then
          amount(i):=0.00;   
        end ifEXCEPTION                                                                                 when NO_DATA_FOUND THEN  DBMS_OUTPUT.PUT_LINE();
     amount(i):=0.00;
    end;  
      

  2.   

    mosquitoxh(南非蚊子) :和我的有什么不同?
      

  3.   

    select sum()的时候,
    不会出现NO_DATA_FOUND的情况
    肯定有一条记录
      

  4.   

    select count()是没有NO_DATA_FOUND的情况,select sum()也没有吗?我来试试
      

  5.   

    select sum()永远都是有记录的,不会出现NO_DATA_FOUND
    即使根据条件找不到记录,那么会into 变量一个null值
      

  6.   

    大家说得对,如果这样写:
    select count(a),sum(a) into :a,:b from table1;
        if a = 0 then
          amount(i):=0.00;   
        end if
    其实下面都不需要了!
    EXCEPTION                                                                                 when NO_DATA_FOUND THEN  DBMS_OUTPUT.PUT_LINE();
     amount(i):=0.00;
    end;