Em Qui, 2015-04-16 às 16:15 -0300, Rafael Fialho escreveu:
> Em 16 de abril de 2015 16:06, Matheus Saraiva
> <[email protected]> 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.
É exatamente esse o erro,
ERROR: function operacional.funcInsertCircuitos(unknown, unknown, integer,
integer, integer, integer) does not exist
LINE 1: select operacional."funcInsertCircuitos"('BRA-9999-SC_h2',
n...
^
HINT: No function matches the given name and argument types. You
might need to add explicit type casts.
>
Como seria o override?
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral