Я думаю, вы хотите, чтобы база данных анализировала строку формулы. Например, для Oracle вы могли бы
- Добавить в таблицу столбец, содержащий результат
Запустите оператор обновления, который вызовет функцию PL / SQL со значениями столбцов в таблице и текстом формулы
update {table} set формула_result = fn_calc_result (столбец1, столбец2, формула_колонны);
Функция PL / SQL создаст строку, заменив «col1» и «col2» и т. Д. Фактическими значениями этих столбцов. Вы можете сделать это с регулярными выражениями, если формулы написаны последовательно.
Тогда используйте
execute immediate 'select '||{formula}||' from dual' into v_return;
return v_return;
чтобы вычислить результат и вернуть его.
Конечно, вы также можете написать свой собственный парсер. Если вы решили пойти по этому пути, не забудьте обработать приоритет операций, скобки и так далее.