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;

desde ja agradeço.

CREATE OR REPLACE FUNCTION gera_log()
RETURNS TRIGGER AS $$
   DECLARE campo VARCHAR(30);
   DECLARE meucursor refcursor;
   DECLARE linha text;
   DECLARE SQL01 text;
   DECLARE SQL02 text;
   DECLARE valorvelho varchar(30);
   DECLARE valornovo varchar(30);
BEGIN
   linha = '';
   open meucursor for
     SELECT
       cm.attname
     FROM
       (pg_attribute cm
       INNER JOIN pg_class tb ON cm.attrelid = tb.oid)
     WHERE
       tb.relname = TG_RELNAME and
       attstattarget = -1;
     LOOP
     FETCH meucursor INTO campo;

     IF NOT found THEN
       EXIT;
     END IF;

   SQL02 = 'SELECT new.nome INTO valornovo';
   EXECUTE SQL02;
   linha = linha || valornovo;
   END LOOP;
   CLOSE meucursor;


  INSERT INTO auditoria_banco_dados
   ( autor,
     tipo,
     nome_tabela,
     comando
   )
   VALUES
   (
     user,
     TG_OP,
     TG_RELNAME,
     linha
   );
   RETURN NULL;
END; $$ LANGUAGE 'plpgsql';
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a