Disparar triggers a cada linha inserida na tabela

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
KATIA DIAS
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 16 Mar 2006 8:48 pm
Localização: são PAULO

Bom dia a todos!

Preciso criar uma trigger que a cada linha inserida numa determinada tabela, seja disparada e posteriormente chama
uma procedure para inserção destes dados em outra tabela. Alguém possui algum exemplo ou possa me ajudar?

Obrigada.

Kátia
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Neste caso, você usa uma trigger AFTER INSERT.


Aqui vai um exemplo:

Selecionar tudo

CREATE OR REPLACE TRIGGER suatrigger
AFTER INSERT
   ON suatabela
   FOR EACH ROW

DECLARE
   v_username varchar2(10);

BEGIN
   -- Busca alguma informacao qualquer. (Apenas um exemplo)
   SELECT user INTO v_username
   FROM dual;

  -- chama uma procedure passando os dados inseridos pra procedure.
  PRC_SUAPROC   ( :new.order_id,
     :new.quantity,
     :new.cost_per_item,
     :new.total_cost,
     v_username );

  -- se não quiser chamar procedure, pode inserir direto na outra tabela:
   INSERT INTO outratabela
   ( order_id,
     quantity,
     cost_per_item,
     total_cost,
     username )
   VALUES
   ( :new.order_id,
     :new.quantity,
     :new.cost_per_item,
     :new.total_cost,
     v_username );  

END;

/
KATIA DIAS
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 16 Mar 2006 8:48 pm
Localização: são PAULO

Boa tarde dr_gori!

Exatamente isso que precisava....Vou testar aqui o exemplo ,

Muito obrigada
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 18 visitantes