Em 12-09-2013 14:53, Rafael Fialho Corrêa escreveu:
Acredito que não exista limitação nos parâmetros, visto que a "pg_proc"
armazena somente os tipos dos parâmetros, e não seu limite.
Talvez precise fazer as exceções no próprio código da função mesmo..

Sua resposta está perfeita. Ajudaria muito se estivesse lá embaixo pra continuação dos demais colegas. Então, quem estiver lendo isso, role por favor...

Em 12 de setembro de 2013 14:33, Rogério Grando
<[email protected] <mailto:[email protected]>> escreveu:

    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.


O comportamento está correto.
Além da outra resposta láááá em cima no top-posting do outro colega, veja a página do manual explicando o comportamento dos data types em funções:
http://www.postgresql.org/docs/9.3/static/typeconv-func.html

Sim, sanitize qualquer argumento no código da função, se realmente precisar.

[]s

__________________________________
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: [email protected]
______________________________
FREE SOFTWARE SOLUTIONS
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a