Fehler Beim Erstellen eines Triggers
Hallo
ich möchte auf einer Oracle Datenbank einen Trigger erstellen
Die Sequence habe ich schon erstellt Sie heisst SEQUENCE1
Um den Trigger anzulegen benutzte ich/ will ich benutzen:
Der code von SEQUENCE1
wenn ich nun den Trigger erstelln will kommt folgender Fehler:
Kann mir da jemand helfen?
ich möchte auf einer Oracle Datenbank einen Trigger erstellen
Die Sequence habe ich schon erstellt Sie heisst SEQUENCE1
Um den Trigger anzulegen benutzte ich/ will ich benutzen:
CREATE OR REPLACE TRIGGER TRIGGER_MLCD_COREDATA
BEFORE INSERT
ON MLCD_COREDATA
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
SELECT SEQUENCE1.NEXTVAL
INTO :NEW.RECID
FROM DUAL;
END;
/
Der code von SEQUENCE1
SEQUENCE1
MINVALUE 1
MAXVALUE 9999999999999999999999999999
INCREMENT BY 1
START WITH 1
CACHE 20
NOORDER NOCYCLE ;
wenn ich nun den Trigger erstelln will kommt folgender Fehler:
Error report:
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-320: the declaration of the type of this expression is incomplete or malformed
06552. 00000 - "PL/SQL: %s"
*Cause:
*Action:
Kann mir da jemand helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 80024
Url: https://administrator.de/forum/fehler-beim-erstellen-eines-triggers-80024.html
Ausgedruckt am: 26.12.2024 um 04:12 Uhr
8 Kommentare
Neuester Kommentar
Hallo,
versuch es mal so:
CREATE OR REPLACE TRIGGER TRIGGER_MLCD_COREDATA
BEFORE INSERT ON MLCD_COREDATA
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
declare
v_RECID MLCD_COREDATA.RECID%TYPE;
BEGIN
SELECT SEQUENCE1.NEXTVAL
INTO v_RECID
FROM DUAL;
:NEW.RECID := v_RECID;
END;
/
Gruß - René
versuch es mal so:
CREATE OR REPLACE TRIGGER TRIGGER_MLCD_COREDATA
BEFORE INSERT ON MLCD_COREDATA
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
declare
v_RECID MLCD_COREDATA.RECID%TYPE;
BEGIN
SELECT SEQUENCE1.NEXTVAL
INTO v_RECID
FROM DUAL;
:NEW.RECID := v_RECID;
END;
/
Gruß - René
Hallo,
also bei mir funktioniert das.
Poste mal bitte die Tabellendefinition (wenigstens den Datentyp von "RECID") und die Oracle-Version.
Gruß - René
also bei mir funktioniert das.
Poste mal bitte die Tabellendefinition (wenigstens den Datentyp von "RECID") und die Oracle-Version.
Gruß - René
Hallo,
also bei mir funktioniert alles perfekt, sowohl in 9i als auch in 10g.
Noch mal nachgefragt, was ist das für eine Tabelle?
Mach mal ein "DESC MLCD_COREDATA" und poste das Ergebnis.
Das "REFERENCING NEW AS New OLD AS Old" im Trigger brauchst Du nicht angeben, es sei denn eine Spalte in der Tabelle hast Du "NEW" oder "OLD" benannt.
Gruß - René
also bei mir funktioniert alles perfekt, sowohl in 9i als auch in 10g.
Noch mal nachgefragt, was ist das für eine Tabelle?
Mach mal ein "DESC MLCD_COREDATA" und poste das Ergebnis.
Das "REFERENCING NEW AS New OLD AS Old" im Trigger brauchst Du nicht angeben, es sei denn eine Spalte in der Tabelle hast Du "NEW" oder "OLD" benannt.
Gruß - René
Moin Powerpan,
das verstehe ich nur begrenzt.
In dem von Dir geposteten CREATE-TRIGGER-Statement wird doch außer dem Feld RECID kein anderes Feld angesprochen - somit auch kein Feld namens "DATE"?
Soll Deine Fehleranalyse jetzt bedeuten, dass ich in Oracle zwar Tabellen mit Spaltenname "RESEVIERTESWORT" anlegen kann, dann aber die DB krachen geht, sobald ich darauf einen Trigger definiere?
Und das oben gepostete, nicht funktionierende Statement lässt sich jetzt kompilieren, seit Du ein Feld "DATE" in einer Tabelle auf "DATUM" umbenannt hast???
So abgedreht kam mir Oracle bisher gar nicht vor...
Ratlos
Biber
das verstehe ich nur begrenzt.
In dem von Dir geposteten CREATE-TRIGGER-Statement wird doch außer dem Feld RECID kein anderes Feld angesprochen - somit auch kein Feld namens "DATE"?
Soll Deine Fehleranalyse jetzt bedeuten, dass ich in Oracle zwar Tabellen mit Spaltenname "RESEVIERTESWORT" anlegen kann, dann aber die DB krachen geht, sobald ich darauf einen Trigger definiere?
Und das oben gepostete, nicht funktionierende Statement lässt sich jetzt kompilieren, seit Du ein Feld "DATE" in einer Tabelle auf "DATUM" umbenannt hast???
So abgedreht kam mir Oracle bisher gar nicht vor...
Ratlos
Biber