Oracle 有 before 和 after 触发器及 new, old 表。

解决方案 »

  1.   

    对于 insert 和 delete, 你可以建一 before 触发器,处理 :new 表的内容. 对于 Update, 你可以利用 :new and :old 表的内容。
      

  2.   

    例:
      if inserting and :new.pr_process = 'Y' then
         insert into pr_process_logs
         values(1,
                pr_process_seq.nextval,
                :new.pr_pr,
                :new.pr_process,
                user,
                sysdate);
      elsif deleting then
         insert into pr_process_logs
         values(4,
                pr_process_seq.nextval,
                :old.pr_pr,
                :old.pr_process,
                user,
                sysdate);
      elsif updating then
         insert into pr_process_logs
         values(2,
                pr_process_seq.nextval,
                :old.pr_pr,
                :old.pr_process,
                user,
                sysdate);
         insert into pr_process_logs
         values(3,
                pr_process_seq.currval,
                :new.pr_pr,
                :new.pr_process,
                user,
                sysdate);
      end if;