2013/4/8 Marcelo da Silva <[email protected]>
>
> Resolvido
>
> Pessoal, com a ajuda dos colegas cheguei a seguinte função
>
> CREATE OR REPLACE FUNCTION femailsclientes(integer)
>   RETURNS character varying AS
> $BODY$
>   declare
>     emails character varying;
>     reg record;
> begin
>     emails = '';
>     for reg in select email from mv_clientes_emails where (cod_id = $1)
>     loop
>       emails = reg.email || ', ' || emails;
>     end loop;
>   return left(emails, length(emails)-2); -- Retira a ultima virgula
> end;
> $BODY$
>   LANGUAGE plpgsql IMMUTABLE
>   COST 100;
> ALTER FUNCTION femailsclientes(integer)
>   OWNER TO postgres;
>
>
> Show de bola obrigado a todos
>

Marcelo,

O pessoal já falou anteriormente, então sua função pode ser reduzida a isso:

CREATE OR REPLACE FUNCTION femailsclientes(integer)
  RETURNS character varying AS
$BODY$
  SELECT string_agg(email, ', ') FROM mv_clientes_emails WHERE cod_id = $1
$BODY$
  LANGUAGE sql IMMUTABLE
  COST 100;


É isso ai mesmo... vc não precisa de uma função em PL/pgSQL para realizar o
que vc precisa... uma simples função SQL é mais do que suficiente e tb mais
rápida.

Att,

--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a