Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql/oracle gespeicherte mathematische formel

Ich denke, Sie sagen, Sie möchten, dass die Datenbank die Formelzeichenfolge analysiert. Für Oracle könnten Sie beispielsweise

  • Fügen Sie der Tabelle eine Spalte hinzu, die das Ergebnis enthält
  • Führen Sie eine Update-Anweisung aus, die eine PL/SQL-Funktion mit den Werten der Spalten in der Tabelle und dem Text der Formel

    aufruft

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

Die PL/SQL-Funktion würde eine Zeichenfolge erstellen, indem sie „col1“ und „col2“ usw. durch die tatsächlichen Werte dieser Spalten ersetzt. Das geht mit regulären Ausdrücken, solange die Formeln konsistent geschrieben sind.

Verwenden Sie dann

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

um das Ergebnis zu berechnen und zurückzugeben.

Natürlich könnte man auch einen eigenen Parser schreiben. Wenn Sie sich für diesen Weg entscheiden, vergessen Sie nicht, die Priorität von Operationen, Klammern usw. zu behandeln.