Я получаю сообщение об ошибке при обновлении сложного представления даже после создания вместо триггера.
ОШИБКА:
ORA-01779: невозможно изменить столбец, сопоставленный стаблица без сохранения ключа
ОБНОВЛЕНИЕ В СЛОЖНОМ ВИДЕ:
update employee_dep
set dname='Admin',
deptno=506
where empno=103;
INSTEAD OF TRIGGER (успешно создан):
create or replace trigger trigg_namew
instead of insert on employee_dep
for each row
declare
rcount number;
begin
select count(*) into rcount from employ where empno = :new.empno;
if (rcount = 0) then
insert into employ (empno,deptno) values (:new.empno, :new.deptno);
else
update employ
set deptno = :new.deptno
where empno = :old.empno and deptno = :old.deptno;
end if;
select count(*) into rcount from department where deptno = :new.deptno;
if(rcount = 0) then
insert into department values (:new.deptno , :new.dname);
else
update department
set dname = :new.dname
where deptno = :old.deptno and dname = :old.dname;
end if;
end;