Ich ging die vorherigen Antworten durch, um einen Pseudo-Fremdschlüssel für Referenztabellen zwischen zwei Datenbanken in Netbeans 8.1 zu erstellen. Dies ist der Code, den ich mit aufkam,Fremdschlüssel zwischen zwei Datenbanken
DELIMITER //
CREATE OR REPLACE TRIGGER conf_track_FK
AFTER INSERT OR UPDATE on [email protected]
FOR EACH ROW
BEGIN
IF EXISTS(select * from inserted I where not exists (select * from
[email protected] A where I.conf_id=A.conf_id))
RAISE_APPLICATION_ERROR(-20001,'Violation of pseudo-foreign key.');
ROLLBACK;
END IF;
END;
/
Allerdings habe ich die folgenden Fehler auftreten:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
) with and or group having intersect minus start union where
connect
PLS-00103: Encountered the symbol "ROLLBACK" when expecting one of the following:
:= . (% ;
The symbol ":=" was substituted for "ROLLBACK" to continue.
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
end not pragma final instantiable order overriding static
member constructor map
Ihre Fehlermeldung zeigt Oracle und das '@ FIT5148B' einen DBLink an. Sie können keinen Trigger über einen Datenbanklink erstellen. Sie müssen eine Verbindung zur entfernten Datenbank herstellen und dort den Trigger erstellen. Außerdem: Das 'delimiter //' ist für jedes Oracle SQL-Tool, das ich kenne, ungültig. Sind Sie sicher, dass Ihr Tool dies unterstützt? Darüber hinaus gibt es in Oracle keine "Einfügung" - vor allem nicht in einem Trigger auf Zeilenebene. –
Auch 'If-Anweisung'-Struktur ist einfach falsch. Bitte hilf dir selbst und lies zuerst einige grundlegende Tutorials. Sie sind nicht so schwer zu finden (http://stackoverflow.com/tags/plsql/info). – user272735