Brasil Software escreveu: > 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.
Existe uma sutileza aqui. Realmente um EXECUTE 'SELECT ... INTO' não é suportado mas um EXECUTE 'SELECT ...' INTO é. Reparem a posição do ' (isto é a string que está sendo executada), não é um SELECT INTO mas sim um EXECUTE '..' INTO. Vejam: http://www.postgresql.org/docs/8.3/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN > 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.; > Osvaldo _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral