2014-06-13 19:44 GMT-03:00 Junior Miranda <[email protected]>:
> return query select
> field01,
> field02,
> ' ' || field03 as field03
> from campo
> order by field01;
>
>
> A função é comitada sem problema algum, mas quando realizo a consulta,
> retorna o erro
> Ex.
> Código:
>
> select field01,
> field02,
> field03
> from funcao()
> as Tabela(field01 integer, field02 varchar(6), field03 character
> varying(38))
>
>
> ERRO: structure of query does not match function result type
>
O motivo é porque quando você concatena valores o resultado que você tem é
text ou varchar sem precisão, daí teria que chamar da seguinte forma:
select field01,
field02,
field03
from funcao()
as Tabela(field01 integer, field02 varchar(6), field03 text);
De qualquer forma. A não ser que sua função tenha realmente um retorno
dinâmico, eu recomendaria evitar o RETURNS [SETOF] RECORD, e usar RETURNS
TABLE, parâmetros OUT ou tipos definidos. Facilita a vida e evita esse tipo
de problema.
Atenciosamente,
--
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral