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;
posted @ 2012-12-19 15:11  深南大道  阅读(546)  评论(0编辑  收藏  举报