Acho que o que você está dizendo é que deseja que o banco de dados analise a string da fórmula. Por exemplo, para Oracle você pode
- Adicione uma coluna à tabela para conter o resultado
-
Execute uma instrução de atualização que chamaria uma função PL/SQL com os valores das colunas na tabela e o texto da fórmula
atualizar {tabela} set formula_result =fn_calc_result (col1, col2, formula_column);
A função PL/SQL criaria uma string substituindo "col1" e "col2" e assim por diante pelos valores reais dessas colunas. Você pode fazer isso com expressões regulares, desde que as fórmulas sejam escritas de forma consistente.
Então use
execute immediate 'select '||{formula}||' from dual' into v_return;
return v_return;
para calcular o resultado e devolvê-lo.
Claro, você também pode escrever seu próprio analisador. Se você decidir seguir esse caminho, não se esqueça de lidar com a precedência da operação, parênteses e assim por diante.