Oracle trigger fehlgeschlagen -ORA-04098
Habe ich eine Tabelle, für die ich geschrieben habe, einen trigger:
CREATE OR REPLACE TRIGGER ac01_control_trigg
AFTER INSERT ON ac1_control_test
FOR EACH ROW
DECLARE
BEGIN
IF :NEW.cur_pgm_name = 'LSN'
AND :NEW.nxt_pgm_name ='MD'
AND :NEW.file_status='RD' THEN
INSERT INTO ac1_control_test
(FILE_NAME, FILE_PATH,FILE_STATUS,CUR_PGM_NAME,NXT_PGM_NAME)
VALUES
(:NEW.FILE_NAME, :NEW.FILE_PATH,:NEW.FILE_STATUS,:NEW.CUR_PGM_NAME,'MD_MPS');
END IF;
END ac01_control_trigg;
wenn ich versuche in die Tabelle einfügen, die ich erhalte eine Fehlermeldung unten!
ORA-04098: trigger 'CNGDB18.AC01_CONTROL_TRIGG' is invalid and failed re-validation
könnte irgend jemand bitte helfen?
auch wenn ich kompilieren Sie die trigger in Kröte,bin ich immer Fehler bei der Kompilierung wie folgt:
LINE/COL ERROR
-------- -----------------------------------------------------------------
3/65 PLS-00049: bad bind variable 'NEW_FILE_STATUS'
aber was ist falsch mit diesem?
und was hat dieser Fehler zu bedeuten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
BEARBEITEN: Nun, sehen wir die Botschaft, die Lösung ist einfach 🙂
Verwenden
:NEW.file_status='RD'
statt:new_file_status='RD'
Ihre trigger-Objekt ungültig ist (es ist ein problem mit dem code).
Testen Sie dies mit:
Zurückgeben soll:
AC1_CONTROL_TRIGG INVALID
Können Sie versuchen, die folgenden in
SQL*Plus
um eine Beschreibung des Fehlers:Mit TOAD können Sie nur geben Sie diese beiden Zeilen in einem editor, markieren Sie diese und verwenden Sie
Editor
>Execute SQL via SQL*Plus
.