...
exception when no_data_found then
ln_dps_amt := 0;
...

解决方案 »

  1.   

    补充:
    begin
     SELECT NVL(SUM(DI.DPI_AMT),0)
            INTO ln_dps_amt
            FROM PMS_DPS_ITM DI,PMS_DPS_HDR DH
            WHERE (DH.TCY_INT_KEY = ii_tcy_int_key) AND
            DH.DPS_NO = DI.DPS_NO
            AND DH.DPS_STATUS = 'NL'
            GROUP BY DH.TCY_INT_KEY ;
    exception
      exception when no_data_found then
        ln_dps_amt := 0;
    end;
      

  2.   

    这个办法不好,
    我后面就要用
    ln_dps_amt 
    来进行运算的.
      

  3.   

    首先我要说的是,这句话会报错吗??
    应该不会的,因为你用了SUM(),如果没有记录,则ln_dps_amt 是NULL,你又用了NVL,所以
    没有记录这个变量是0,楼上的,你作过测试吗?
      

  4.   

    只要有group by  就错不用的回就对了.
      

  5.   

    改成这样
    SELECT SUM(decode(nvl(DI.DPI_AMT,0),0,0,DI.DPI_AMT))
    into ...
      

  6.   

    另外
    ln_dps_amt 是个什么变量?分组统计后的结果可能有若干条,能存的下吗?
      

  7.   

    hehe,还是你这条SQL语句有错误吧,或者就是多条记录了。