转的 触发器的范例

来源:互联网 发布:举报网页专用软件 编辑:程序博客网 时间:2024/05/17 03:31
  1. create or replace trigger wf_tri_user_list before insert or update or delete on user_list  
  2. for each row    
  3. declare   
  4.    uid varchar2(10); useq varchar2(10); asql varchar2(200); namea varchar2(200); nameb varchar2(200);    
  5. begin   
  6.    namea:=NULL;    
  7.    nameb:=NULL;    
  8.    if inserting then   
  9.       insert into wflow.bpm_org_user(userid,username,diaplayname,seq) values(:NEW.user_id,:NEW.user_name,:NEW.user_realname,:NEW.user_id);    
  10.       dbms_output.put_line('insert trigger is chufale .....');    
  11.          
  12.    end if;    
  13.    if updating then   
  14.       if (:NEW.user_name<>:OLD.user_name) and (:NEW.user_realname<>:OLD.user_realname) then   
  15.          namea:=:NEW.user_name;    
  16.          nameb:=:NEW.user_realname;    
  17.          asql:='update wflow.bpm_org_user set diaplayname=:1 where username=:2';    
  18.          execute immediate asql using namea,nameb;    
  19.       else   
  20.         if :NEW.user_name<>:OLD.user_name then   
  21. create or replace trigger wf_tri_user_list before insert or update or delete on user_list    
  22.           namea:=:NEW.user_name;    
  23.           asql:='update wflow.bpm_org_user set user_name=:1 where username=:2';    
  24.           execute immediate asql using namea;    
  25.         else   
  26.           if :NEW.user_realname<>:OLD.user_realname then   
  27.             nameb:=:NEW.user_realname;    
  28.             asql:='update wflow.bpm_org_user set diaplayname=:1 where username=:2';    
  29.             execute immediate asql using nameb,:OLD.user_id;    
  30.           end if;    
  31.         end if;    
  32.       end if;    
  33.    end if;    
  34.    if deleting then   
  35.       update wflow.bpm_org_jobusers set userid = 0 where :OLD.user_id =userid and parentid=-1;    
  36.       delete from wflow.bpm_org_jobusers where userid = :OLD.user_id;    
  37.       delete wflow.bpm_org_user where userid=:OLD.user_id;    
  38.    end if;    
  39.    commit;    
  40. end;    

貌似csdn不支持sql高亮!-_-

原创粉丝点击