Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.