Em 9 de março de 2010 10:25, Osvaldo Kussama > <osvaldo.kuss...@gmail.com> escreveu:
> >> Tente: > >> EXECUTE 'SELECT quote_literal(' || nome_campo ||') INTO valor_rec'; > > > Ola Osvaldo, > > Aquele "INTO valor_rec" não deveria ser fora das aspas (')? Ou seja, > deveria fazer parte do EXECUTE e não do SELECT dinâmico. Por exemplo: > > EXECUTE 'SELECT quote_literal(' || nome_campo || ') FROM nome_tabela' > INTO valor_rec; > Perfeitamente, na pressa acabei omitindo parte do comando. Osvaldo Obrigado Osvaldo e Guedes pelas dicas Está acontecendo o seguinte: Se eu fizer assim: EXECUTE ''select quote_literal( '' || nome_campo || '' ) '' INTO valor_rec; sendo o valor de nome_campo = 'mov_rec.id_contrato' fica assim... EXECUTE select ' mov_rec.id_contrato' INTO valor_rec; aqui eu recebo o seguinte erro: WARNING: Error occurred while executing PL/pgSQL function f_gera_fatura WARNING: line 550 at execute statement ERROR: Relation "mov_rec" does not exist Mas se eu faço assim: EXECUTE ''select '' || quote_literal(nome_campo ) INTO valor_rec; fica assim... EXECUTE select 'mov_rec.id_contrato' INTO valor_rec; aqui nao recebo erro mas como fazer para ver o valor de valor_rec? RAISE NOTICE ''valor_rec: (%)'', valor_rec; retorna (<NULL>) _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral