Trigger para gravação de LOG

16/10/2018

0

Boa noite pessoal,

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

Caique

Responder

Post mais votado

17/10/2018

bom dia,

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

Ricardo Pestana
Responder

Mais Posts

17/10/2018

Emerson Nascimento

para obter a data, utilize SYSDATE
Responder

17/10/2018

Caique

Obrigado Ricardo! deu certo.

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.
Responder

17/10/2018

Emerson Nascimento

INSERT INTO LOG VALUES (IDLOG.NEXTVAL,SYSDATE, 'Produto ' || cast(:NEW.IDPRODUTO as varchar(10)) || ' alterado' );
Responder

17/10/2018

Caique

Demais Emerson! Muito obrigado pela ajuda!
Responder

24/11/2019

Arilson

CAIQUE, COMO FICOU O SEU CODIGO FINAL ?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar