title image


Smiley Ora Insert Trigger mit Werten aus Tabelle_2 und Defaults füllen
Hallo zusammen



ich muss nen Trigger basteln, der für mich schon etwas komplexer ist, aber ich hangel mich da schon Step by Step durch. Leider ist kein Trigger bei uns im System, der so etwas abbildet.



Also der Trigger muss nach nem Insert, Update und Delete in Tabelle_2 feuern und in Tabelle_1 Werte insertieren oder updaten.



Fall A ist der Insert



Beim Insert muss ich sowohl auf Defaults als auch auf Werte in Tabelle_2 zurückgreifen





Da mal so ein Ansatz bei dem mir nicht klar ist, wie OLD and NEW sauber zusammenhängen und wie ich sowohl Defaults als auch Werte aus Tabelle_2 in Tabelle_1 insertiert bekomme, bzw. wie ich den Feldern



:NEW.FELD_1,

:NEW.FELD_2,

:NEW.FELD_3,



wobei Feld_1 und Feld_2 auch noch an Bedingungen geknüpft sind





mitgebe, dass es sich um Felder aus Tabelle_2 handelt. IM Deklarationsabschnitt?



CREATE OR REPLACE

TRIGGER "PROD6".FRANK_TEST

BEFORE INSERT OR UPDATE OR DELETE ON TABELLE_2

REFERENCING NEW AS NEW OLD AS OLD

FOR EACH ROW

--Fall 1 Bestellwert > 20000 and < 100000 also Feld_1 in Tabelle_2

BEGIN

IF :NEW.FELD_1 > 19999 AND :NEW.FELD_1 < 99999 THEN

IF INSERTING THEn

-- Feld_2 in Tabelle_2 hat den Wert 'BE'

IF :NEW.FELD_2 = 'BE' THEN

INSERT INTO TABELLE_1 (FELD_1 , FELD_2, FELD_3, FELD_4, FELD_5)

VALUES (:NEW.FELD_1, :NEW.FELD_2, :NEW.FELD_3, 'TEST', sysdate);

END IF

END IF;

EXCEPTION

WHEN NO_DATA_FOUND THEN

NULL;

END;



Ich hoffe, dass ich das Problem einigermassen schildern konnte

Oder besser lesbar








________________________________

"Per Anhalter durch die Galaxis":

Nach nur 7,5 Millionen Erdenjahren war das Rätsel gelöst. Deep Thought verkündete mit unsagbarer Erhabenheit und Ruhe: 42!!

Antworten auf zwar weitaus weniger bewegende Fragen bekommst hier deutlich schneller:

SQL-Tips das SQL-Wiki

Bis Denne Frank


geschrieben von

Anhang
Bild 10571 zu Artikel 509308

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: