可能是在 select -sum(umfudebt+umfpdebt) into v_judgementdebt 给 v_judgementdebt 赋值的,检查一下 umfudebt 和 umfpdebt 是否有 null 值。
用:-sum(nvl(umfudebt,0)+nvl(umfpdebt,0)) 试试 

解决方案 »

  1.   

    select count(*) into v_count
    from umfdetails
    where umfcmpcd = v_cmpcd看v_count 数是多少?
      

  2.   

    umfudebt+umfpdebt这两个字段有空值,
    然后sum(umfudebt+umfpdebt)的时候NULL+VAR也是空,再
    sum(umfudebt+umfpdebt)是不会触发no_data_found 所以出现你的结果
      

  3.   

    当umfudebt+umfpdebt中有空值时会出现其他异常可以改为:
    begin
    select -sum(nvl(umfudebt,0)+nvl(umfpdebt,0))
    into v_judgementdebt
    from umfdetails
    where umfcmpcd = v_cmpcd
    exception
    when no_data_found then
    v_judgementdebt := 0;
    end;