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