在写Oracle的Function,下面是在JAVA里的原函数,现在想把这部分放到Oracle的函数里去
if(Double.isNaN(cos2SigmaM)){
cos2SigmaM = 0 ;
}
ORACLE应该怎么写?
cos2SigmaM在Oracle的函数里我定义是是Float类型的,其实本来JAVA里是Double类型的,可是貌似Oracle里Function的参数不支持Double的,所以函数里也就一起用的Float

解决方案 »

  1.   


    with t1 as 
    (
    select '123' a_name from dual union all
    select '' from dual
    )select nvl(a_name,0)  a_name from t1    a_name 
    ----------------
    1 123
    2 0
      

  2.   

    那要是
      if(iterLimit == 0){
    return Double.NaN;
       }怎么在Oracle里体现?
      

  3.   


    那要是
      if(iterLimit == 0){
    return Double.NaN;
      }怎么在Oracle里体现?
      

  4.   

    if nvl(cos2SigmaM,0)=0
    then 
      

  5.   

    错了,
    用nvl() 这个函数就OK了……
      

  6.   


    if(iterLimit == 0){
    return Double.NaN;
      }这个改成
    if(iterLimit = 0){
    then return 0.0/0.0;
      }对么?
      

  7.   


    可以用decode函数with t1 as 
    (
    select '123' a_name from dual union all
    select '0' from dual
    )select decode(a_name,'0','',a_name) a_name from t1    a_name 
    ----------------
    1    123
    2    ''