Olá pessoal, boa tarde a todos!

Estava fazendo alguns testes e notei um comportamento estranho.
Quando crio uma função e limito o parâmetro de entrada, esta limitação não 
funciona.
Crio uma função que recebe varchar(11), mas se eu passar um varchar de 12 ou 
mais ele asseita, a mesma coisa para numeric.
Isso pode provocar uma fala indesejada no sistema. Agora terei que validar isso 
na função.
Acho que seria interessante não permitir esta situação.
Testes em PostgreSQL versões 8.5.20 e 9.2 em Windows.


CREATE OR REPLACE FUNCTION sp_teste(nvarchar varchar(11))
  RETURNS character varying AS
$BODY$
DECLARE
BEGIN
  RETURN nvarchar; 
END; $BODY$
  LANGUAGE plpgsql VOLATILE;

SELECT sp_teste('12345678910111213');


CREATE OR REPLACE FUNCTION sp_teste2(nnumeric numeric(5,2))
  RETURNS numeric  AS
$BODY$
DECLARE
BEGIN
  RETURN nnumeric; 
END; $BODY$
  LANGUAGE plpgsql VOLATILE;

SELECT * FROM sp_teste2(145214.52234);

Abraço a todos.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a