Oracle学习札记[1]--触发器

 Oracle触发器案例代码:

View Code
 
CREATE OR REPLACE TRIGGER ISOK_UPDATE_HISTORY
  BEFORE UPDATE
  ON TECH_RTDB_POSITION_T
  FOR EACH ROW
  
DECLARE
    -- local variables here
    t_WHMS   VARCHAR2(1000); --位号的描述
    t_ZZDM   VARCHAR2(40); --装置代码
    t_ZZMC   VARCHAR2(200); --装置名称
    t_DXZ    VARCHAR2(200); --低限值
    t_GXZ    VARCHAR2(200); --高限值
    t_D_DOWN VARCHAR2(200); --合理范围下限
    t_D_UP   VARCHAR2(200); --合理范围上限
    t_DW   VARCHAR2(40); --单位
    t_ISUSE  VARCHAR2(200); --是否启用
    t_DESCRIPTION  VARCHAR2(2000); --描述
  
BEGIN
  
      IF :OLD.WHMS<>:NEW.WHMS THEN
       t_WHMS:='位号名称更新为:'||:NEW.WHMS||';';       
    END IF
    
      IF :OLD.ZZDM<>:NEW.ZZDM THEN
       t_ZZDM:='装置代码更新为:'||:NEW.ZZDM||';';       
    END IF
     
      IF :OLD.ZZMC<>:NEW.ZZMC THEN
       t_ZZMC:='装置名称更新为:'||:NEW.ZZMC||';';       
    END IF;
    
       IF :OLD.DXZ<>:NEW.DXZ THEN
       t_DXZ:='低限值更新为:'||to_char(:NEW.DXZ)||';';       
    END IF;
    
       IF :OLD.GXZ<>:NEW.GXZ THEN
       t_GXZ:='高限值更新为:'||to_char(:NEW.GXZ)||';';       
    END IF;
    
       IF :OLD.D_DOWN<>:NEW.D_DOWN THEN
       t_D_DOWN:='合理范围下限更新为:'||to_char(:NEW.D_DOWN)||';';     
    END IF;
    
       IF :OLD.D_UP<>:NEW.D_UP THEN
       t_D_UP:='合理范围上限更新为:'||to_char(:NEW.D_UP)||';';      
    END IF;
    
       IF :OLD.DW<>:NEW.DW THEN
       t_DW:='单位更新为:'||:NEW.DW||';';      
    END IF;
    
    IF :OLD.ISUSE<>:NEW.ISUSE THEN
       t_ISUSE:='是否启用:'||to_char(:NEW.ISUSE)||';';     
    END IF;
    
    t_DESCRIPTION:=t_WHMS||t_ZZDM||t_ZZMC||t_DXZ||t_GXZ||t_D_DOWN||t_D_UP||t_DW||t_ISUSE;
    
    INSERT INTO HISTORY_TECH_RTDB_POSITION_T(HISTORY_ID,INFO_ID,DESCRIPTION)
          VALUES(SEQ_HISTORY_ID.NEXTVAL,:OLD.BM,t_DESCRIPTION);
END;

 

posted on 2011-11-08 14:56  ゞWXXoοО  阅读(264)  评论(0编辑  收藏  举报