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
