Zum Inhalt springen

PL/SQL mit Oracle 10g, Trigger erstellen: Tabelle bei Gleichheit füllen


macgyver4711

Empfohlene Beiträge

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. und eine Fortlaufende Numemr las Primärschlüssel (sequenz_mainboard)

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. Diese Koppeltabelle hat als Felder nur die beiden Sequenznummern der Bauteile.

Der Datentyp des Feldes Sockel ist varchar2.

Ich habe versucht einen Beispielcode abzuwandeln, mein Ergebnis seht ihr

hier:

Ich bedanke mich schon jetzt für eure Hilfe!

CREATE OR REPLACE TRIGGER new_cpu

BEFORE INSERT ON cpu

FOR EACH ROW

DECLARE

	cursor cs is select sequenz_mainboard from mainboard where socket = :NEW.SOCKET;

        cs_rec cs%rowtype;

begin

	open cs;

	loop fetch cs into cs_rec; 

	exit when cs%notfound; 

	insert into cpu_mainboard VALUES(:new.sequenz_cpu,cs_rec);

	end loop;	

	close cs;

end new_cpu;

.

run;

Als Fehlermeldung bekomme ich folgendes:
Fehler bei TRIGGER NEW_CPU:


LINE/COL ERROR

-------- ---------------------------------------

6/102    PLS-00382: expression is of wrong type

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

das mit dem Trigger vergiss direkt wieder. In einen Trigger gehöret keine fachliche Logik. Du kannst eine PL/SQL Prozedur schreiben, die diesen Geschäftsvorfall kapselt aber nicht in einem Trigger verstecken.

Zu deinem Problem: Ich kann jetzt keinen Fehler erkennen. Kannst mal die DDL der Tabellen posten, damit wir das nachstellen können?

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

erstmal vielen Dank für die Antwort,

wie gesagt: ich fange gerade erst an irgendwas mit SQL zu machen und nutze nur das fertig aufgesetzte Datenbanksystem unserer FH, hab keine Ahnung wie man das in ne DLL exportiert (oder wie auch immer das funktioniert)

wir haben ein C-Programm, das alles automatisch aufbaut. das hab ich hier mal angehängt. einfach xdbs.exe ausführen sollte gehen. Dabei natürlich in den beiden .bat Dateien insert.bat und osql.bat die benutzerdaten anpassen. Im Verzeichnuns Trigger ist dann auch der hier gepostete code zu finden unter createtrigcpu.sql

Wie das mit ner Prozedur funktioniert muss ich mir dann auch nochmal anlesen.

Hat jemand nen brauchbaren Link mit nem Tutorial?

Gruß, Jan!

Rechnerkonfigurator.rar

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...