Esta semana precisei criar uma função no banco de dados PostgreSQL que me retornasse o menor valor dentre outros cotados. Nesta função eu passo dois parâmetros: codigo do material e codigo da cotação (ambos do tipo inteiro).
A função me retorna um tipo NUMERIC(20, 2), que é o tipo no qual venho trabalhando com valores monetários pois segundo a própria documentação do PostgreSQL:
It is especially recommended for storing monetary amounts and other quantities where exactness is required.
Outro detalhe importante que podemos observar é que na query, os valores contidos nos parâmetros são lidos utilizando $1 e $2 respectivamente. Vejamos:
CREATE FUNCTION func_menor_valor(codigo_material INT, codigo_cotacao INT) RETURNS NUMERIC(20, 2) AS $$ SELECT MIN(valor_total) AS menor_valor FROM view_cotacoes WHERE codigo_material = $1 AND codigo_cotacao = $2 GROUP BY codigo_material; $$ LANGUAGE SQL;
Enfim, isso é apenas um exemplo básico de função. Mais informações podem ser encontradas na documentação. Também é importante lembrar que a versão do PostgreSQL utilizada foi a 9.1.
Nenhum comentário:
Postar um comentário