Hallo Leute!
Ich brauche bitte Hilfe bei einem trigger für oracle.
Ich möchte zwei Werte aufsummieren und in eine Tabelle schreiben.
Der Trigger feuert bei einem Insert auf Tabelle A und schreibt dann einen Wert aus Tabelle A in Tabelle B.
Und jetzt zum Problem: Ich möchte zuerst aus Tabelle B einen Wert auslesen (über ein Select - wenn geht) und dann mit dem Wert aus Tabelle A eine Summe bilden und diesen Wert wieder in Tabelle B schreiben.
Grundsätzlich habe ich mit dem Trigger kein Problem. Ich weiß nur nicht wie ich vorm Laufen des Triggers eine Variable deklariere und diese über ein Select befülle.
Vielen Dank für Eure Hilfe!
hi!
Ich möchte zwei Werte aufsummieren und in eine Tabelle
schreiben.
aufsummieren oder addieren?
Der Trigger feuert bei einem Insert auf Tabelle A und schreibt
dann einen Wert aus Tabelle A in Tabelle B.
Und jetzt zum Problem: Ich möchte zuerst aus Tabelle B einen
Wert auslesen (über ein Select - wenn geht) und dann mit dem
Wert aus Tabelle A eine Summe bilden und diesen Wert wieder in
Tabelle B schreiben.
Grundsätzlich habe ich mit dem Trigger kein Problem. Ich weiß
nur nicht wie ich vorm Laufen des Triggers eine Variable
deklariere und diese über ein Select befülle.
wieso „vor“ dem trigger?
create or replace trigger blabla
before insert on tabelle\_irgendwas
for each row
declare
der\_wert number;
begin
/\* der "zu fuss"-weg mit vorher rausholen \*/
select b\_wert
into der\_wert
from tabelle\_irgendwas\_anderes
where verknuepfung = :new.andere\_verknuepfung;
update tabelle\_irgendwas\_anderes
set c\_wert = der\_wert + :new.a\_wert
where verknuepfung = :new.andere\_verknuepfung;
/\* der einfachere weg \*/
update tabelle\_irgendwas\_anderes
set c\_wert = b\_wert + :new.a\_wert
where verknuepfung = :new.andere\_verknuepfung;
end;
oder hab ich was falsch verstanden?
grüße,
tomh