日期:2014-05-17  浏览次数:20685 次

函数中无法取得结果

create or replace function F_GET_HLTS_TEST(bkh in varchar2, xh in integer, hldm in varchar2) return number is
  Result number(10,3); 
  hlzts number(10,3);
begin
select  case when sum(sl) is null then 0 else sum(sl)  end as hlzts into Result from t_z_brfy_mx  where bkh_zy = bkh  and ryxh=xh  and yzbm =hldm  and fyzt = '1';
  return(Result);
end F_GET_HLTS_TEST;
select F_GET_HLTS_TEST('0729450',1,'H0003') FROM DUAL;
 

这样调用为什么无法取得实际值。每回都是返回:0
但将语句拿出来单独执行时却能得到值:10
求指教!
------最佳解决方案--------------------
加个异常捕获看看,打印下,看有没有出错。
------其他解决方案--------------------
用nvl('p1','p2')函数试试
------其他解决方案--------------------
没有错误就是赋不上值!
------其他解决方案--------------------
悲催的玩意,什么错都不报,重建一遍居然好使了!