Trigger para gravação de LOG
16/10/2018
0
Sou novato no mundo Oracle e estou com dificuldades em criar uma trigger que toda vez que um produto for alterado, deverá criar um registro de LOG.
Criei a trigger abaixo porém não tenho certeza de que estar certa, pois esta apresentando a mensagem "2/48 PL/SQL: ORA-00984: coluna não permitida aqui" na linha os está AFTER UPDATE OR INSERT ON PRODUTO.
CREATE OR REPLACE TRIGGER CREATE_LOG
AFTER UPDATE OR INSERT ON PRODUTO
FOR EACH ROW
BEGIN
INSERT INTO LOG VALUES (NEXTVAL,''02/10/2018'', "log criada" );
end;
Além disso, no insert, coloquei apenas uma data simbolica, pois tem que inserir a data atual e não faço ideia de como fazer isso.
Segue estrutura da tabela LOG:
IDLOG NUMBER(38,0)
DATA DATE
DESCRICAO VARCHAR2(255 BYTE)
podem me ajudar por favor ?
Caique
Post mais votado
17/10/2018
Esse insert funciona fora da trigger?
Acredito que vc tenha que informar o nome da sequence antes do nextval, tenta direto no sql alterando a aspas duplas para simples conforme abaixo:
INSERT INTO log VALUES (NOME_DA_SEQUENCIA.nextval, '05/10/2018', 'log criada' );
Ricardo Pestana
Mais Posts
17/10/2018
Caique
Criei uma sequence para o nextval.
Porém para efeito de melhoria na descrição do LOG, quero que no insert, na coluna "Descricao" (último campo após o SYSDATE no insert da trigger abaixo) seja exibido o id do produto que foi alterado e o campo que foi alterado, como por exemplo 'Produto (ID produto) alterado (ex. Quantidade)' . É possível ?
Abaixo segue trigger criada.
CREATE OR REPLACE TRIGGER CREATE_LOG
AFTER UPDATE OR INSERT ON PRODUTO
FOR EACH ROW
BEGIN
INSERT INTO LOG VALUES (IDLOG.NEXTVAL,SYSDATE, 'Produto Alterado');
end;
Muito obrigado pela ajuda.
17/10/2018
Emerson Nascimento
Clique aqui para fazer login e interagir na Comunidade :)