Jag tror att det du säger är att du vill att databasen ska analysera formelsträngen. Till exempel, för Oracle kan du
- Lägg till en kolumn i tabellen för att innehålla resultatet
-
Kör en uppdateringssats som skulle anropa en PL/SQL-funktion med värdena för kolumnerna i tabellen och formelns text
uppdatera {tabell} set formula_result =fn_calc_result (kol1, kol2, formelkolumn);
PL/SQL-funktionen skulle skapa en sträng genom att ersätta "col1" och "col2" och så vidare med de faktiska värdena för dessa kolumner. Du kan göra det med vanliga uttryck, så länge formlerna är konsekvent skrivna.
Använd sedan
execute immediate 'select '||{formula}||' from dual' into v_return;
return v_return;
för att beräkna resultatet och returnera det.
Naturligtvis kan du också skriva din egen parser. Om du bestämmer dig för att gå den vägen, glöm inte att hantera operationsprioritet, parenteser och så vidare.