create trigger TDA_P_DEMO_IMG_MAX_TIMES after delete
on T_DEMO_IMG
declare
    integrity_error  exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;
begin
    IntegrityPackage.NextNestLevel;
       update T_DEMO_IMG
       set  MAX_MODIFY_TIMES= 100000
       from T_DEMO_IMG a,deleted b
       where a.CORP_EMS_NO=b.CORP_EMS_NO and a.IMG_NO=b.IMG_NO and a.MAX_MODIFY_TIMES=b.MODIFY_TIMES and a.MODIFY_TIMES < b.MODIFY_TIMES;    
    
    IntegrityPackage.PreviousNestLevel;--  Errors handling
exception
    when integrity_error then
       begin
       IntegrityPackage.InitNestLevel;
       raise_application_error(errno, errmsg);
       end;
end;

解决方案 »

  1.   

    可以,不过要注意是否for each row
      

  2.   

    可是出错:错误文本= PL/SQL: ORA-00942: 表或视图不存在,说deleted表不存在?
      

  3.   

    “  from T_DEMO_IMG a,deleted b ”这些是你的表名吗?
      

  4.   

    update T_DEMO_IMG 
    set  MAX_MODIFY_TIMES= 100000 
    from T_DEMO_IMG a,deleted b
    ================================
    oracle哪有这种UPDATE语法?
      

  5.   

    可以啊。
    你的trigger写的有语法错误,update是sqlserver的语法,oracle的不是这么写的。