----- Mensagem original -----
> De: "Marcelo da Silva" <[email protected]>
> Para: "Comunidade PostgreSQL Brasileira" <[email protected]>
> Enviadas: Segunda-feira, 8 de abril de 2013 9:03:45
> Assunto: [pgbr-geral] Função para concatenar resultados
> 
> Pessoal estou tentando concatenar numa string o resultado de um select:
> 
> email1, email2, email3, etc
> 
> Sei pouca coisa em termos de funções em Postgres, criei a função abaixo pra
> isso.
> Mas está faltando o principal que é concatenar, vejam:
> 
> CREATE OR REPLACE FUNCTION femailsclientes(integer)
> RETURNS character varying AS
> $BODY$
> declare
> result character varying;
> begin
> 
> for result in select distinct email from mv_clientes_emails where (cod_id =
> $1)
> loop
> result = result || ',' || result;
> end loop;
> return result;

Ajuste o bloco acima. Tem um errinho de lógica.
A variável "result" é trocada a cada interação do loop.
Dica: use outra variável e a declare.

No declare, coloque uma nova variável como:
result_concat character varying;

Para assinalar um valor a uma variável você também tem de usar ":=" e não 
somente "=".



Exemplo de um loop que *talvez* funcione, você tem de testar:

result_concat := '';
for result in select distinct email from mv_clientes_emails where (cod_id = $1)
loop
  result_concat := result_concat || ',' || result;
end loop;

Ajuste aí e veja se funciona.

[]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