Я пытаюсь сделать триггер, который обновляет статус класса при обновлении класса или вставки нового. Thats мой столКурсоры в oracle PL/SQL
create table Enrollment (
Student_ID char(9) not null,
Course_ID char(5) not null,
Registered_Date date,
Grade NUMBER,
Status varchar(4),
constraint pkEnrollment primary key (Student_ID, Course_ID));
Вот мой код до сих пор, и я не знаю, в чем проблема
create or replace TRIGGER PASS_FAIL
AFTER INSERT OR UPDATE OF GRADE ON ENROLLMENT
DECLARE
CURSOR change_grade IS
select GRADE, STATUS from ENROLLMENT FOR UPDATE;
newgrade ENROLLMENT.GRADE%type;
newstatus ENROLLMENT.STATUS%type;
BEGIN
OPEN change_grade;
LOOP
FETCH change_grade into newgrade,newstatus;
IF newgrade>=60 THEN UPDATE ENROLLMENT SET STATUS = 'Pass' WHERE CURRENT OF change_grade;
ELSE UPDATE ENROLLMENT SET STATUS = 'Fail' WHERE CURRENT OF change_grade;
END IF;
EXIT WHEN change_grade%NOTFOUND;
END LOOP;
CLOSE change_grade;
END;
Когда я попытался изменить класс я получить
UPDATE "FELIX"."ENROLLMENT" SET GRADE = '10' WHERE ROWID = 'AAAGETAABAAALKJAAE' AND ORA_ROWSCN = '3332070'
ORA-04098: trigger 'FELIX.ELIGIBLE_ENROLLMENT' is invalid and failed re-validation
One error saving changes to table "FELIX"."ENROLLMENT":
Row 5: ORA-04098: trigger 'FELIX.ELIGIBLE_ENROLLMENT' is invalid and failed re-validation
Спасибо заранее за помощь
В чем проблема или сообщение об ошибке? – kevinsky
Когда я пытался изменить оценку, я получаю ОБНОВЛЕНИЕ «FELIX». «ENROLLMENT» SET GRADE = '10' WHERE ROWID = 'AAAGETAABAAALKJAAE' И ORA_ROWSCN = '3332070' ORA-04098: триггер FELIX.ELIGIBLE_ENROLLMENT недействителен и не удался повторно проверкой Одна ошибки при сохранении изменений в таблицу «ФЕЛИКС» «РЕГИСТРАЦИЯ»:. Row 5: ORA-04098: триггер «FELIX.ELIGIBLE_ENROLLMENT» является недействительным и не повторной проверкой –
в качестве отправной точки, делает ваш скомпилировать триггер? если нет, то какое сообщение об ошибке? – kevinsky