Brasil Software wrote:
> Brasil Software wrote:
>   
>> Olá amigos tenho uma função que grava log do usuario, quando implementei 
>>        o fonte para grava os campos alterados da um erro naq seguinte 
>> linha.
>>
>> SQL02 = 'SELECT new.nome INTO valornovo';
>> EXECUTE SQL02;
>>     
> Não é permitido fazer um INTO dentro de um EXECUTE.
> Leia a mensagem de erro, ela deixa bem claro isso.
> Você poderia fazer isso que deseja sem jogar para uma string e
> executá-la ou da melhor forma: valornovo := new.nome;
>
> Att
>
> Evandro
>
> Na verdade este fonte e dinamico "SQL02 = 'SELECT new.'|| campo || ' 
> INTO' valornovo'" para que todas as tabelas utilizem esta função.;
>   
O código que você passou não demonstrar que esse campo é dinâmico.
Não tem como fazer esse campo ser dinamico pelo fato que você está 
acessando um record (NEW). Você tem que fazer new.nome e não 'new.' || 
campo.
Pelo que entendi você está querendo salvar o registro de uma tabela em 
outra, é isso? para fazer auditoria?
Se for, de uma olhada nisso [1], deve te ajudar.

[1]http://pgdocptbr.sourceforge.net/pg80/plpgsql-trigger.html#PLPGSQL-TRIGGER-AUDIT-EXAMPLE

Evandro

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

Responder a