create or replace function getvalue(li_A number,li_B number,li_C number,ls_sql varchar2) return number is
li_return number;
ls varchar2(32);
begin
ls:=replace(replace(replace(ls_sql,'A',li_A),'B',li_B),'C',li_C);
execute immediate 'select '||ls ||' from dual ' into li_return;
return(li_return);
end getvalue;
这个只是是例子,作参考。