Criar uma trigger para duas tabelas

Scripts Diversos para o Oracle SQL*Plus. (Relacionado a ferramenta Oracle SQL*Plus, para questões de SQL, usar o forum SQL)
Responder
Dukiz
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Ter, 31 Ago 2010 12:38 pm
Localização: Maringá

Fala galera..

estou começando no mundo oracle e a minha pergunta acredito ser simples pra quem entende como a galera por aqui..

Seguinte,
Gostaria de criar uma tabela com despesas mensais.

Para isso, criei uma tabela que vou denominar de 'MOVIMENTACOES' com:

Selecionar tudo

DATA                                               DATE
VALOR                                              NUMBER(10)
TIPO                                               CHAR(1)
HISTORICO                                          VARCHAR2(40)
é nessa tabela onde vou fazer os inserts

em outra tabela denominada 'NAOMEXER', criei a tabela q vou usar na trigger q vai ser apenas pra visualização.

Selecionar tudo

SALDO                                              NUMBER(10)
CREDITO                                            NUMBER(10)
DEBITO                                             NUMBER(10)
SALDO_ATUAL                                        NUMBER(10)
agora eu comecei a usar as triggers e foi aí que me bati

vou inserir valores na tabela MOVIMENTAÇÕES e eu preciso que o valor que eu dou insert e o tipo la da outra tabela entrem no credito ou debito dependendo do numero

daí eu comecei assim:

Selecionar tudo

create trigger teste
after insert on tabel movimentações
begin
if tipo = '1' then valor = //do debito da segunda tabela//
elsif tipo = '2' then valor = //do credito da segunda tabela//
como eu faço isso ?
deu pra entender ou ficou confuso ?
Dukiz
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Ter, 31 Ago 2010 12:38 pm
Localização: Maringá

desculpe
errei o que eu escrevi na trigger

seria assim:

Selecionar tudo

create trigger teste 
after insert on tabel movimentações 
begin 
if tipo = '1' then DEBITO (2a tabela) = valor (1a tabela) 
elsif tipo = '2' then CREDITO (2a tabela) = valor (1a tabela)
tem como fazer isso ?
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Pelo que eu entendi você precisa usar na tabela MOVIMENTACOES dados da tabela NAOMEXER correto?


Talves algo assim solucione sua nescessidade....

Selecionar tudo

create or replace trigger teste
  before  on movimentacoes  
  for each Row
Declare
  v_debito     naomexer.debito%Type;
  v_credito    naomexer.credito%Type;
  Cursor c_001 Is
    Select debito,
           credito
      From naomexer;
   -- onde esta o link entre a tabela "não mexer" e a "movimentacoes"
begin
  Open c_001;
  Fetch c_001 Into v_debito, v_credito;
  Close c_001;
  If tipo = 1 Then
    :New.valor := v_debito;
  Elsif tipo = 2 Then
    :New.valor := v_credito;
  End If;
end teste;


Surgiu-me uma duvida, como a tabela não mexer se relaciona com a movimentação?
Responder
  • Informação
  • Quem está online

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