Mysql
 sql >> Database >  >> RDS >> Mysql

formula matematica memorizzata in mysql/oracle

Penso che quello che stai dicendo è che vuoi che il database analizzi la stringa della formula. Ad esempio, per Oracle potresti

  • Aggiungi una colonna alla tabella per contenere il risultato
  • Eseguire un'istruzione di aggiornamento che richiamerebbe una funzione PL/SQL con i valori delle colonne nella tabella e il testo della formula

    update {table} set formula_result =fn_calc_result (col1, col2, formula_column);

La funzione PL/SQL creerebbe una stringa sostituendo "col1" e "col2" e così via con i valori effettivi di quelle colonne. Puoi farlo con espressioni regolari, purché le formule siano scritte in modo coerente.

Quindi usa

execute immediate 'select '||{formula}||' from dual' into v_return;
return v_return;

per calcolare il risultato e restituirlo.

Naturalmente, potresti anche scrivere il tuo parser. Se decidi di procedere in questo modo, non dimenticare di gestire la precedenza delle operazioni, le parentesi e così via.