macgyver4711 Geschrieben 17. Februar 2009 Teilen Geschrieben 17. Februar 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 17. Februar 2009 Teilen Geschrieben 17. Februar 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
macgyver4711 Geschrieben 17. Februar 2009 Autor Teilen Geschrieben 17. Februar 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.