ORA-04098: триггер 'PRAS.B' недействителен и не прошел повторную проверку - PullRequest
0 голосов
/ 08 ноября 2018

У меня следующий запрос,

CREATE OR REPLACE TRIGGER display_salary_changes
BEFORE  INSERT ON marks 
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW 
DECLARE 
    sal_diff number;
BEGIN 
    sal_diff:=:NEW.sub1-:OLD.sub1;
    dbms_output.put_line('Old salary: ' || :OLD.sub1); 
    dbms_output.put_line('New salary: ' || :NEW.sub1); 
    dbms_output.put_line('Salary difference: ' || sal_diff); 
END;

Когда я пытаюсь запустить его, он выдает,

ORA-04098: trigger 'PRAS.B' is invalid and failed re-validation

ИМЯ ТИП ПОСЛЕДОВАТЕЛЬНОСТЬ ПОЛОЖЕНИЕ ЛИНИИ ТЕКСТ АТРИБУТ MESSAGE_NUMBER

B        TRIGGER        1        9      38        PLS-00201: identifier 'OLD.SUB1' must be declared ERROR   201

B   TRIGGER 2   9   2   PL/SQL: Statement ignored   ERROR   0

B   TRIGGER 3   10  41  PLS-00201: identifier 'NEW.SUB1' must be declared   ERROR   201

B   TRIGGER 4   10  2   PL/SQL: Statement ignored   ERROR   0
...