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
