A linha return exibem ; está dentro do loop. Quando o return executa, a função é finalizada, então o loop nunca executará mais de uma vez. Tire o return do loop.
Outra sugestão. em vez de fazer a linha p = $1; coloque no declare p ALIAS FOR $1; exemplo. declare r record; i integer; exibem varchar; exibel varchar; p ALIAS FOR $1; begin tatiane martins wrote: > Ola, > > tenho a seguinte funcao > > CREATE OR REPLACE FUNCTION docduplicata(integer) > RETURNS varchar AS > $BODY$ > declare > r record; > i integer; > exibem varchar; > exibel varchar; > p integer; > begin > p = $1; > for r in > select s.saida, s.chave_nf, > (select count (s.saida) from saidas s left join > movimentofinanceiro mf on s.saida = mf.saida where mf.centrocusto = 8 > and s.saida = $1) as qtdm, > (select count (s.saida) from saidas s left join > movimentofinanceiro mf on s.saida = mf.saida where mf.centrocusto =9 > and s.saida = $1) as qtdl > from saidas s > left join movimentofinanceiro mf on s.saida = mf.saida > left join notasfiscais nf on s.chave_nf = nf.chave > where mf.centrocusto in (8, 9) and s.saida = $1 loop > > i=1; > for i in i .. r.qtdm loop > exibem := r.chave_nf || ' - ' || i || ' / ' || r.qtdm ; > return exibem ; > end loop; > > end loop; > end; > $BODY$ > LANGUAGE 'plpgsql' VOLATILE; > > mas ela so passa uma vez pelo for, exibindo somente o valor dessa > primeira passagem.... > o que estou fazendo errado? > > Obrigado > > __________________________________________________ > Fale com seus amigos de graça com o novo Yahoo! Messenger > http://br.messenger.yahoo.com/ > > ------------------------------------------------------------------------ > > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > Antes de perguntar consulte o manual > http://pgdocptbr.sourceforge.net/ > > Para editar suas opções ou sair da lista acesse a página da lista em: > http://pgfoundry.org/mailman/listinfo/brasil-usuarios _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios