Myślę, że chcesz, aby baza danych przeanalizowała ciąg formuły. Na przykład w przypadku Oracle możesz
- Dodaj kolumnę do tabeli, aby zawierała wynik
-
Uruchom instrukcję aktualizującą, która wywoła funkcję PL/SQL z wartościami kolumn w tabeli i tekstem formuły
zaktualizuj {table} set formula_result =fn_calc_result (col1, col2, formula_column);
Funkcja PL/SQL utworzy ciąg, zastępując „col1” i „col2” itd. rzeczywistymi wartościami tych kolumn. Możesz to zrobić za pomocą wyrażeń regularnych, o ile formuły są konsekwentnie pisane.
Następnie użyj
execute immediate 'select '||{formula}||' from dual' into v_return;
return v_return;
obliczyć wynik i zwrócić go.
Oczywiście możesz też napisać własny parser. Jeśli zdecydujesz się pójść w ten sposób, nie zapomnij zająć się pierwszeństwem operacji, nawiasami i tak dalej.