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