[oracle_br] Re: Help me!!! Trigger de rastreabilidade

2006-01-17 Por tôpico André Santos
Viviane

De cara, o erro de sintaxe que vi no seu código foi no ELSEIF.
No Oracle NÃO tem o 2o. e, ou seja NÃO é elsEif, mas sim elsIf.
Estranho mas verdade... r

Uma opinião: ao invés de ter a descrição do evento por extenso 
(INSERÇÃO, ALTERAÇÃO), poderia ser um campo com uma única letra 
(I, A).

[ ]

André


--- Em oracle_br@yahoogrupos.com.br, vivianestacio 
[EMAIL PROTECTED] escreveu

 Alguém já fez algo desse tipo: Preciso fazer uma trigger de 
 rastreabilidade que insira o nome da tabela,tipo de dml
 (insert,update),data,nome do usuário,e conteúdo da coluna 
principal, 
 estou tentando o codigo abaixo... mas está dando erro, alguém já 
fez 
 algo desse tipo e pode me ajudar? Obrigada
 Eu também gostaria de saber se é possível fazer uma trigger para 
pegar 
 de todas as tabelas?
 
 
 CREATE OR REPLACE TRIGGER tg_rastreabilidade
  AFTER INSERT OR UPDATE ON t_categoria
  FOR EACH ROW
  BEGIN
   IF INSERTING THEN
 INSERT INTO t_rastreabilidade 
 (NM_TABELA,TX_OPERACAO,DT_CRIACAO,NM_PESSOAL)
VALUES ('INSERÇÃO',sysdate,user,TABLE_NAME 
   );
   ELSEIF UPDATING THEN   
INSERT INTO t_rastreabilidade 
 (NM_TABELA,TX_OPERACAO,DT_CRIACAO,NM_PESSOAL)
VALUES ('ALTERAÇÃO',sysdate,user,TABLE_NAME 
   );
   END IF;
  END;
 /







--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[oracle_br] Re: Help me!!! Trigger de rastreabilidade

2006-01-17 Por tôpico jlchiappa
Sim, além dos outros como a ordem claramente invertida no INSERT, ie

INSERT INTO t_rastreabilidade
   (NM_TABELA,  TX_OPERACAO,DT_CRIACAO,NM_PESSOAL)
VALUES ('ALTERAÇÃO',sysdate,user  ,TABLE_NAME

e não existe nenhuma variável de sistema chamada TABLE_NAME.

Viviane, se vc dar as infos que o Márcio pediu (ie, versões, 
definição do que é uma coluna principal, o que vc exatamente 
precisa), a gente pode te ajudar mais : provavelmente, até mesmo vc 
NÂO precisará programar nadica de nada, dependendo do que vc disser 
que precisa vc pode usar o comando AUDIT do próprio Oracle.

[]s

 Chiappa

--- Em oracle_br@yahoogrupos.com.br, André Santos 
[EMAIL PROTECTED] escreveu

 Viviane
 
 De cara, o erro de sintaxe que vi no seu código foi no ELSEIF.
 No Oracle NÃO tem o 2o. e, ou seja NÃO é elsEif, mas 
sim elsIf.
 Estranho mas verdade... r
 
 Uma opinião: ao invés de ter a descrição do evento por extenso 
 (INSERÇÃO, ALTERAÇÃO), poderia ser um campo com uma única letra 
 (I, A).
 
 [ ]
 
 André
 
 
 --- Em oracle_br@yahoogrupos.com.br, vivianestacio 
 [EMAIL PROTECTED] escreveu
 
  Alguém já fez algo desse tipo: Preciso fazer uma trigger de 
  rastreabilidade que insira o nome da tabela,tipo de dml
  (insert,update),data,nome do usuário,e conteúdo da coluna 
 principal, 
  estou tentando o codigo abaixo... mas está dando erro, alguém já 
 fez 
  algo desse tipo e pode me ajudar? Obrigada
  Eu também gostaria de saber se é possível fazer uma trigger para 
 pegar 
  de todas as tabelas?
  
  
  CREATE OR REPLACE TRIGGER tg_rastreabilidade
   AFTER INSERT OR UPDATE ON t_categoria
   FOR EACH ROW
   BEGIN
IF INSERTING THEN
  INSERT INTO t_rastreabilidade 
  (NM_TABELA,TX_OPERACAO,DT_CRIACAO,NM_PESSOAL)
 VALUES ('INSERÇÃO',sysdate,user,TABLE_NAME 
);
ELSEIF UPDATING THEN   
 INSERT INTO t_rastreabilidade 
  (NM_TABELA,TX_OPERACAO,DT_CRIACAO,NM_PESSOAL)
 VALUES ('ALTERAÇÃO',sysdate,user,TABLE_NAME 
);
END IF;
   END;
  /
 







--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html