Em 12/05/12, Anselmo Silva<anselmo....@gmail.com> escreveu:
> Pergunta de newbie de PostgreSQL.
> Pretendo fazer uma função que me faça um cálculo matemático de um text
> passado como parâmetro.
> Algo Assim:
>
> CREATE FUNCTION CALCULE (calculo text) RETURNS NUMERIC...
>
> Até aí tudo bem. Mas me deparei com uma regra que não entendi direito, mas,
> deve ter um motivo:
>
> "A divisão de números inteiros resulta em um número inteiro"
>
> Meu problema é:
>
> Tendo sido dado o seguinte com base na minha função acima:
>
> SELECT CALCULE('1/10');
>
> Gostaria de obter o resultado fracionado sem ter de tratar a string passada
> para converte-las em numeric
> antes de efetuar a operação.
>
> Já busquei em tudo que é lugar mas a resposta é a mesma:
>
> "Tem de converter ao menos um dos operandos para real ou numeric..."
>
> Alguém tem alguma idéia mais eficiente?
>


Para este caso em particular (uma operação aritmética) creio que
funcionaria colocar em sua função:
EXECUTE 'SELECT ' || parametro ||'::numeric;' INTO resultado;

Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a