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