sql >> Databáze >  >> RDS >> Mysql

mysql/oracle uložený matematický vzorec

Myslím, že to, co říkáte, je, že chcete, aby databáze analyzovala řetězec vzorce. Například pro Oracle můžete

  • Přidejte do tabulky sloupec, který bude obsahovat výsledek
  • Spusťte aktualizační příkaz, který by zavolal funkci PL/SQL s hodnotami sloupců v tabulce a textem vzorce

    aktualizovat {table} set formula_result =fn_calc_result (sloupec1, sloupec2, sloupec vzorce);

Funkce PL/SQL by vytvořila řetězec nahrazením "col1" a "col2" a tak dále skutečnými hodnotami těchto sloupců. Můžete to udělat s regulárními výrazy, pokud jsou vzorce psány konzistentně.

Poté použijte

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

pro výpočet výsledku a jeho vrácení.

Samozřejmě můžete také napsat svůj vlastní parser. Pokud se rozhodnete jít tímto způsobem, nezapomeňte zacházet s prioritou operací, závorkami a tak dále.



  1. Závažná chyba MySQL:Nelze otevřít a zamknout tabulky oprávnění:Nesprávný formát souboru 'uživatel'

  2. Mysql codeigniter php asc desc pořadí podle výsledku počtu pomocí php

  3. Generujte testovací data pomocí vývojáře Oracle PL/SQL

  4. Uvolněte velmi rozsáhlé databáze