我现在建了一个view VFLine,是基于4个关系表的,因为不能直接插入view,所以想实现用row trigger的办法来实现,怎么实现.

解决方案 »

  1.   

    由于在ORACLE里,不能直接对由两个以上的表建立的视图进行操作。所以给出了替代触发器。
    INSTEAD OF 选项使ORACLE激活触发器,而不执行触发事件。只能对视图和对象视图建立INSTEAD OF触发器,而不能对表、模式和数据库建立INSTEAD OF 触发器。
    CREATE OR REPLACE TRIGGER emp_view_delete
       INSTEAD OF DELETE ON emp_view FOR EACH ROW
    BEGIN
       DELETE FROM emp WHERE deptno= :old.deptno;
    END emp_view_delete;