Em 16 de abril de 2015 16:06, Matheus Saraiva <matheus.sara...@gmail.com>
escreveu:

> Ao chamar uma função que criei, estou sendo obrigado a usar cast
> explicito nos parâmetros. Por exemplo, em uma função que espera receber
> (varchar, integer, smallint, bigint, date) eu estou sendo obrigado a
> castar o tipo na chamada da função. Exemplo
>
> select funcTeste('Teste'::varchar, 1, 3::smallint, 10::bigint,
> NULL::date);
>
> Caso contrario os parâmetros não são reconhecidos. Alguma maneira de
> mudar isso?
>

Pode informar o erro retornado sem os casts, por gentileza? Quando ocorre o
erro, o Postgres informa qual a função que não conseguiu localizar,
informando os tipos que espera localizar a função.
O problema provavelmente ocorre porque números soltos (normalmente) são
tratados como integer, a não ser que excedam a capacidade de valores
integer, neste caso são tratados como bigint. Sendo assim, o problema é
causado pelos parâmetros smallint e bigint.

O erro deve ser que não conseguiu localizar uma função funcTeste(unknown,
integer, integer, integer, unknown), ou algo assim.
Se for isso, poderias fazer um override "..integer, integer, integer.." que
chame a função com os casts, caso contrário, creio que seja um erro da
aplicação não tratar e não realizar os casts, pois é a forma que assegura
que a função correta está sendo chamada.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a