Hallo,
fange grad an PL/SQL zu Programmieren und versuche mich an folgendem
Beispiel:
Ich will einen Rechnerkonfigurator "bauen".
Es gibt zunächst ne Tabelle Mainboard und eine Tabelle CPU, beide haben
ein Feld Sockel.
beim einfügen eines neuen CPUs soll ein Trigger ausgelöst werden, der
prüft ob der CPU sozusagen auf irgendwelche Boards passt. wenn dem so
ist, soll ein Eintrag in die Koppeltabelle cpu_mainboard geschrieben
werden.
Der Datentyp des Feldes Sockel ist varchar2. Und ich denke auch dass da
der Fehler liegt.(siehe Fehlerbeschreibung unten)
Ich habe versucht einen Beispielcode abzuwandeln, mein Ergebnis seht ihr
hier:
Ich bedanke mich schon jetzt für eure Hilfe!
1 | create or replace trigger new_cpu
|
2 | after insert on cpu
|
3 | for each row
|
4 |
|
5 | declare
|
6 | socketneu varchar2(5):= 0;
|
7 | ma_bez:=0;
|
8 | cursor cs is select * from mainboard where socket = :new.socket;
|
9 | cs_rec cs%rowtype;
|
10 | begin
|
11 | socketneu:= :new.socket;
|
12 | open cs;
|
13 | loop
|
14 | fetch cs into cs_rec;
|
15 | exit when cs%notfound;
|
16 | ma_bez:=cs_rec.bezeichner_ma;
|
17 | insert into cpu_mainboard VALUES(:new.bezeichnung_cpu,ma_bez);
|
18 | end loop;
|
19 | close cs;
|
20 | end new_cpu;
|
21 | .
|
22 | run;
|
dabei bekomme ich folgende Fehlermeldung:
1 | Fehler bei TRIGGER NEW_CPU:
|
2 |
|
3 | LINE/COL ERROR
|
4 | -------- -----------------------------------------------------------------
|
5 | 3/8 PLS-00103: Encountered the symbol "=" when expecting one of the
|
6 | following:
|
7 | constant exception <an identifier>
|
8 | <a double-quoted delimited-identifier> table LONG_ double ref
|
9 | char time timestamp interval date binary national character
|
10 | nchar
|
11 | The symbol "<an identifier>" was substituted for "=" to continue.
|