Trigger para gravação de LOG

SQL

Oracle

16/10/2018

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

Curtidas 2

Melhor post

Ricardo Pestana

Ricardo Pestana

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' );
GOSTEI 2

Mais Respostas

Emerson Nascimento

Emerson Nascimento

16/10/2018

para obter a data, utilize SYSDATE
GOSTEI 1
Caique

Caique

16/10/2018

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.
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

16/10/2018

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

Kevlyn Godoy

16/10/2018

Olá Concurseiros


Venha participar do Aniversário do Maior Site de Rateios do Brasil,

O aniversário é do Concurseiros Unidos,
mas o presente quem ganha é você!

Desconto de 30% a 70% em todo o site!
Corre aproveitar antes que termine!
5541991115296
GOSTEI 0
Kevlyn Godoy

Kevlyn Godoy

16/10/2018

Olá Concurseiros


Venha participar do Aniversário do Maior Site de Rateios do Brasil,

O aniversário é do Concurseiros Unidos,
mas o presente quem ganha é você!

Desconto de 30% a 70% em todo o site!
Corre aproveitar antes que termine!
5541991115296
GOSTEI 0
Caique

Caique

16/10/2018

Demais Emerson! Muito obrigado pela ajuda!
GOSTEI 0
Arilson

Arilson

16/10/2018

CAIQUE, COMO FICOU O SEU CODIGO FINAL ?
GOSTEI 0
POSTAR