有同事问到,
在前端通过编码配置了公式,数据库可以替换公式占位符后计算结果吗?
我们下面模拟:
declare
v_salary number(3) := 100;
v_day number(3) := 5;
v_pattern varchar2(100);
v_script varchar2(100);
begin
v_pattern := 'salary*day';
v_script := replace(v_pattern, 'salary', v_salary);
v_script := replace(v_script, 'day', v_day);
dbms_output.put_line(DBMS_AW.eval_number(v_script));
end;
/
其中replace可以使用regexp_replace替换,加入了正则匹配,使用更加灵活。并且写死的key和value可以通过自定义的type array动态传参,更具灵活性。