Dr.Schlumpf
Benutzer
- Beiträge
- 6
Hallo zusammen,
ich bräuchte mal eure Hilfe bei der Erstellung eines Triggers. Ich probieren da jetzt schon so lange dran rum und komme einfach auf keinen grünen Zweig.
Also was ich machen möchte:
Ich habe eine Tabelle, in der ein Unternehmen einer bestimmten Kategorie zugeordnet wird. Die Kategorien sind hierarchisch. Lieder ist nicht immer die unterste Kategorie verfügbar und daher wird immer die Kategorie eingetragen, die verfügbar ist:
Tabelle unt_kat
id id_unt nr_kat1 nr_kat2 nr_kat3
--------------------------------------------
1 1 NULL 01 NULL
2 2 NULL NULL 03.1
Ich möchte nun automatisch die fehlenden Werte der übergeordneten Kategorien (nr_kat1 im 1 Fall und nr_kat2 und nt_kat1 im zweiten Fall) auffüllen. Auffüllen will ich über eine Abfrage in der Tabelle, in der die Verknüpfungen stehen:
Tabelle kat2
nr_kat2 beschr nr_kat1
-------------------------------
01 bla A
02 blabla A
03 bbbla B
Tabelle kat3
nr_kat3 beschr nr_kat2
-------------------------------
01.1 xxxx 01
01.2 yyyy 01
03.1 zzzzzz 03
Mein Trigger sieht bisher wie folgt aus:
Ich bekommen immer den Fehler:
2/5 PL/SQL: SQL Statement ignored
2/9 PL/SQL: ORA-00922: Fehlende oder ungültige Option
Fehler: Compilerlog prüfen
Ich hoffe, ich konnte verständlich beschreiben, was ich will und freue mich über eure Hilfe.
Ach, und ich hab ne Oracle DB.
Danke
ich bräuchte mal eure Hilfe bei der Erstellung eines Triggers. Ich probieren da jetzt schon so lange dran rum und komme einfach auf keinen grünen Zweig.
Also was ich machen möchte:
Ich habe eine Tabelle, in der ein Unternehmen einer bestimmten Kategorie zugeordnet wird. Die Kategorien sind hierarchisch. Lieder ist nicht immer die unterste Kategorie verfügbar und daher wird immer die Kategorie eingetragen, die verfügbar ist:
Tabelle unt_kat
id id_unt nr_kat1 nr_kat2 nr_kat3
--------------------------------------------
1 1 NULL 01 NULL
2 2 NULL NULL 03.1
Ich möchte nun automatisch die fehlenden Werte der übergeordneten Kategorien (nr_kat1 im 1 Fall und nr_kat2 und nt_kat1 im zweiten Fall) auffüllen. Auffüllen will ich über eine Abfrage in der Tabelle, in der die Verknüpfungen stehen:
Tabelle kat2
nr_kat2 beschr nr_kat1
-------------------------------
01 bla A
02 blabla A
03 bbbla B
Tabelle kat3
nr_kat3 beschr nr_kat2
-------------------------------
01.1 xxxx 01
01.2 yyyy 01
03.1 zzzzzz 03
Mein Trigger sieht bisher wie folgt aus:
Code:
CREATE OR REPLACE TRIGGER untkat_trg
BEFORE INSERT ON unt_kat
FOR EACH ROW
WHEN ( new.nr_kat1 IS NULL AND new.nr_kat2 IS NOT NULL )
BEGIN
set nr_kat1 = (SELECT nr_kat1 from kat2 WHERE nr_kat2 = new.nr_kat2);
END;
/
Ich bekommen immer den Fehler:
2/5 PL/SQL: SQL Statement ignored
2/9 PL/SQL: ORA-00922: Fehlende oder ungültige Option
Fehler: Compilerlog prüfen
Ich hoffe, ich konnte verständlich beschreiben, was ich will und freue mich über eure Hilfe.
Ach, und ich hab ne Oracle DB.
Danke
Zuletzt bearbeitet: