sql >> Base de Datos >  >> RDS >> Mysql

fórmula matemática almacenada en mysql/oracle

Creo que lo que estás diciendo es que quieres que la base de datos analice la cadena de fórmula. Por ejemplo, para Oracle podría

  • Agregue una columna a la tabla para contener el resultado
  • Ejecute una declaración de actualización que llamaría a una función PL/SQL con los valores de las columnas en la tabla y el texto de la fórmula

    actualizar {tabla} establecer fórmula_resultado =fn_calc_result (col1, col2, fórmula_columna);

La función PL/SQL crearía una cadena reemplazando "col1" y "col2" y así sucesivamente con los valores reales de esas columnas. Puede hacerlo con expresiones regulares, siempre que las fórmulas se escriban de manera consistente.

Luego usa

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

para calcular el resultado y devolverlo.

Por supuesto, también puede escribir su propio analizador. Si decide seguir ese camino, no olvide manejar la precedencia de las operaciones, los paréntesis, etc.