Em 9 de março de 2010 18:21, flavio <[email protected]> escreveu: > Creio que seu comando esteja incompleto, talvez seja algo do tipo: > > EXECUTE > 'SELECT ' || quote_ident(nome_campo) || ' FROM ' || > quote_ident(sua_tabela) || ' WHERE ' || quote_ident (seu_campo) || ' > = ' || quote_literal(valor) > INTO valor_rec; > > repare que é > EXECUTE > 'string com o comando a ser executado' > > Osvaldo
> Eu faço uma consulta com FOR LOOP > FOR mov_rec IN > EXECUTE ''SELECT * '' > || '' FROM '' > || contratos_fat_rec.nome_tabela_1 > || '' WHERE id_contrato = '' > || contratos_fat_rec.id_contrato > LOOP > > O problema é que eu preciso pegar os valores retornados cujo nome eu tenho que > montar dentro de outro loop em um array que contem os nomes dos campos para o > record 'mov_rec'. > > mov_rec + nome_campo_array > > Assim: > > mov_rec.id_contrato > mov_rec.ticket > mov_rec.veiculo > ... > > para pegar o valor eu posso usar > > select mov_rec.id_contrato into valor; > > O problema é que a parte 'id_contrato' vem do loop no array com os nomes, > então o que eu tinha achado > no manual era o comando EXECUTE para fazer o comando dinamico. > Por isso eu estou tentando assim: > > EXECUTE ''select mov_rec'' || ''.'' || nome_campo_array INTO valor_rec; > > mas parece que dentro do EXECUTE nao é reconhecido o 'mov_rec', é a impressao > que dá... > Talvez tenha outra maneira de pegar os valores mas nao encontrei. > > Não sei se me expressei bem, mas obrigado pela atenção, se tiver mais alguma > dica... Não está claro o que você deseja. Quando você coloca: select mov_rec.id_contrato into valor; você está fazendo apenas uma atribuição que poderia ser feita simplesmente: valor := mov_rec.id_contrato; Aí você fala de um array mas o comando que você apresenta não tem nenhum subscrito. Talvez: EXECUTE 'SELECT mov_rec.' || nome_campo_array[i] INTO valor_rec; supondo que nome_campo_array[i] contenha o nome do campo do qual você deseja obter o valor, por ex. id_contrato. É isso? Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
