Mysql
 sql >> Base de données >  >> RDS >> Mysql

formule mathématique stockée mysql/oracle

Je pense que ce que vous dites, c'est que vous voulez que la base de données analyse la chaîne de formule. Par exemple, pour Oracle, vous pourriez

  • Ajouter une colonne au tableau pour contenir le résultat
  • Exécuter une instruction de mise à jour qui appellerait une fonction PL/SQL avec les valeurs des colonnes de la table et le texte de la formule

    mettre à jour {table} set formula_result =fn_calc_result (col1, col2, formula_column);

La fonction PL/SQL créerait une chaîne en remplaçant "col1" et "col2" et ainsi de suite par les valeurs réelles de ces colonnes. Vous pouvez le faire avec des expressions régulières, tant que les formules sont écrites de manière cohérente.

Utilisez ensuite

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

pour calculer le résultat et le renvoyer.

Bien sûr, vous pouvez également écrire votre propre analyseur. Si vous décidez de suivre cette voie, n'oubliez pas de gérer la priorité des opérations, les parenthèses, etc.