日期:2014-05-16  浏览次数:20492 次

Oracle中实现javascript中的Eval函数计算效果
select   
EvalCalculate(  
  'case   
    when 1=1 then 1000*0.1-2+15/2
    when 1=2 then 2000  
    when 1=3 then 3000
    when 1=4 then 4000
    else 4000-200*0.2
  end ' 
)  
from dual


--自定义函数
CREATE OR REPLACE FUNCTION EvalCalculate
(str in VARCHAR2) RETURN VARCHAR2
As
  numval number;
begin
  execute immediate 'select '||str||' from dual' into numval;
  return numval;
end;