PL/SQL mit Oracle 10g: Trigger erstellen, tabelle bei gleichheit eines Strings füllen

macgyver4711

Grünschnabel
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!

Code:
create or replace trigger new_cpu
after insert on cpu 
for each row

declare 
	socketneu varchar2(5):= 0;
	ma_bez:=0;		
	cursor cs is select * from mainboard where socket = :new.socket;
	cs_rec cs%rowtype;
begin
	socketneu:= :new.socket;
	open cs;
	loop 
	fetch cs into cs_rec;
		exit when cs%notfound;
		ma_bez:=cs_rec.bezeichner_ma;
			insert into cpu_mainboard VALUES(:new.bezeichnung_cpu,ma_bez);
	end loop;	
	close cs;
end new_cpu;
.
run;

dabei bekomme ich folgende Fehlermeldung:

Code:
Fehler bei TRIGGER NEW_CPU:

LINE/COL ERROR
-------- -----------------------------------------------------------------
3/8      PLS-00103: Encountered the symbol "=" when expecting one of the
         following:
         constant exception <an identifier>
         <a double-quoted delimited-identifier> table LONG_ double ref
         char time timestamp interval date binary national character
         nchar
         The symbol "<an identifier>" was substituted for "=" to continue.
 

Neue Beiträge

Zurück