2012/5/19 Matheus de Oliveira <matioli.math...@gmail.com> > Essa função em si não parece ser uma boa prática, mas dá pra usar > expressão regular pra "tentar" fazer o que você quer. > > Exemplo: > > CREATE OR REPLACE FUNCTION CALCULE (calculo text) > RETURNS NUMERIC AS $$ > DECLARE > v_result numeric; > BEGIN > EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)', > '\1::numeric', 'g') > INTO v_result; > RETURN v_result; > END; > $$ LANGUAGE plpgsql; > > > Aviso: código não testado... > > Corrigindo pra aceitar valor decimal:
CREATE OR REPLACE FUNCTION CALCULE (calculo text) RETURNS NUMERIC AS $$ DECLARE v_result numeric; BEGIN EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-9])', '\1::numeric\2', 'g') INTO v_result; RETURN v_result; END; $$ LANGUAGE plpgsql;
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral