Eval Calculation-string:Postgresql中的“2 * 3 + 4 * 5”

时间:2017-03-30 12:55:44

标签: postgresql eval

我想评估Postgres中的纯计算字符串

例如:eval('234 + 65 * 3')

该函数不是常量,因此也可以只是2 + 2

期待SELECT eval('2 + 2') AS result

之类的东西

我读到了有关eval()函数的巨大安全问题,但这些问题似乎包含SELECT语句。这里纯粹的计算要求。

1 个答案:

答案 0 :(得分:2)

您需要PL/pgSQL

create or replace function f(_s text)
returns numeric as $$
declare i numeric;
begin
    execute format('select %s', _s) into i;
    return i;
end;
$$ language plpgsql;

select f('1 + 1');
 f 
---
 2