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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral