> 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
>
>   
Osvaldo
Eh isso mesmo.
Nao queria colocar todo codigo para nao ficar muito extenso, mas voce 
entendeu perfeitamente.
O problema eh que quando eu uso este comando

EXECUTE 'SELECT mov_rec.' || nome_campo_array[i] INTO valor_rec;

ele me retorna o erro:

ERROR: Relation "mov_rec" does not exist

esquisito nao?
teoricamente deveria funcionar...
Por isso eu tentei assim:

EXECUTE 'select ' || quote_literal( ' mov_rec.'|| nome_campo_array[i] ) 
INTO valor_rec;

assim nao da erro mas como saber o valor da variavel valor_rec que eh do 
tipo RECORD (segundo o manual deve ser RECORD)

RAISE NOTICE 'valor_rec: (%)', valor_rec;

ja da erro na compilacao

Dai eu tentei assim:

EXECUTE 'select '|| quote_literal( ' mov_rec.'|| nome_campo_array[i] ) 
|| ' as valor_campo ' INTO valor_rec;

e o notice
RAISE NOTICE 'valor_rec: (%)', valor_rec.valor_campo;

retorna NULL

Sera que eh problema com as aspas que estou me confundindo ou oque...

Obrigado novamente
Flavio


>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a