Caros,

Criei uma função que, dada uma determinada condição, realiza um pequeno
cálculo. Ao criá-la especifiquei que o return seria float, contudo, ao
executar \df <função> sua saída exibe que o tipo de retorno e de argumento
é double precision. Outra coisa que me incomoda está no retorno dos valores
após a conversão, apresentam 13 algarismos após a vírgula. É possível
limitar isso ou fazer um arredondamento diretamente na função?

CREATE FUNCTION remap_ra(ra float) RETURNS float AS $$
DECLARE
ra ALIAS FOR $1;
BEGIN
IF ra > 180
THEN
ra = ra - 360;
RETURN ra;
ELSE
RETURN ra;
END IF;
END;
$$
LANGUAGE plpgsql;

banco=# \df remap_ra
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+----------+------------------+---------------------+--------
public | remap_ra | double precision | ra double precision | normal
(1 row)

dados originais sem aplicar a função:
ra
---------
315.002
315.002
315.005
315.004
315.013
(5 rows)


aplicando a função:
ra
-------------------
-44.9983520507812
-44.9976806640625
-44.9952087402344
-44.9958190917969
-44.9869689941406
(5 rows)

Abcs

Att.
Carlos Adean
skype: carlosadean
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a