Я создал триггер следующим образом:
create or replace trigger t4
before insert or update on employee1
for each row
declare
cursor c1 is select depno from department where
depno=:new.depno;
c2 c1%rowtype;
begin
open c1;
fetch c1 into c2;
if(c1%found) then
raise_application_error(-20008,'No such department');
end if;
close c1;
end;
Он был успешно создан. Вот так выглядит мое отношение employee1:
EMPNO EMPNAME DESIGNATION DATEOFJOIN SALARY DEPNO GRADE
101 Sharon Manager 01-JAN-00 10000 1 D
102 Gayathri Manager 01-JAN-00 10000 1 D
103 Sharmi HR 02-FEB-00 9900 3 D
111 Raj Salesman 05-JAN-00 5000 1 D
Так выглядит отношение моего отдела например:
DEPNO DEPNAME DEPLOCATION
1 Marketing block a
3 Production block c
Я попытался вставить строку в отношение employee1, чтобы проверить, работает ли мой триггер ..
Insert into employee1 values(110,'Shan','Manager','01-JAN-00',10000,2,'D');
Но появляется следующая ошибка:
ORA-02291: integrity constraint (SYSTEM.SYS_C004025) violated - parent key not found
Но я хочу, чтобы ошибка, которую я вызвал в триггере, отображалась Я знаю, что это плохая идея сделать что-то подобное. Но я должен сделать это для моего задания. Не могли бы вы помочь мне с этим?