Trigger para inserir dados de duas tabelas em apenas uma.

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
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Pessoal tenho duas tabelas relacionadas por um FK.
Preciso que quando sejam inseridos dados nessas tabelas, seja disparada uma trigger que pegue os dados dessas duas tabelas e insira em apenas uma outra terceira tabela.
Alguém pode dar uma ajuda?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Petter, algumas dúvidas brother:

1) Vai fazer algum esquema de Log?
2) Simultaneamente, ou, podem ser duas triggers, uma em cada tabela?

qualquer coisa manda ai.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Não vou necessitar de log, o insert na terceira tabela terá que ser simultâneo.
Avatar do usuário
fabricio.silva
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 34
Registrado em: Seg, 12 Mar 2007 7:07 am
Localização: Catanduva/SP
Fabricio M. Silva
Oracle Certified Associate
------------------------------
Catanduva - SP

Olá colega,

É possível criar uma view destas duas tabelas?

Se sim, você poderia criar uma trigger instead of na view e fazer os inserts q você precisa.

Abs.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Pessoal vlw pela força mas consegui fazer tudo em cima de uma única trigger sem precisar criar um view.
Vlw.
Hahu
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 147
Registrado em: Qui, 16 Mar 2006 11:26 am
Localização: São Paulo
O mundo gira muito!!

Fala pyro,
Bom dia,

Amigo, disponibiliza a solução para a galera do glufke se possivel, para assim a informação circular...troca o nome das tabela por tab_a e coluna , por col_a..por questão de privacidade da sua empresa!!

Qualquer coisa posta aqui no forum!

Abs Hahu
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Segue como ficou a trigger final:

Selecionar tudo

create or replace trigger insert
  after insert on tab_a 
  for each row
declare
  bb      number(6);
  b       number(5);
begin
  select cod_b, cod_bb 
         into b, 
              bb
  from tab_b
  where bbb = :new.b1;

  insert into tab_c(c1, c2, c3, c4, c5)
         values(:new.b2, :new.b3, :new.b4, bb, b);     
end insert;
Responder
  • Informação
  • Quem está online

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