job示例

create or replace trigger tri_Sys_Staff    --触发器名 
After INSERT OR DELETE OR UPDATE ON Sys_Staff    -- after (触发时间)    触发事件 on sys_staff 表名 
for each ROW   -- 循环                   
 -- declare --这里是关键的地方,在变量申明的地方,指定自定义事务处理。   
declare pragma autonomous_transaction;  -- 格式 *   对于定义成自治事务的Procedure,实际上相当于一段独立运行的程序段,这段程序不依赖于主程序,也不干涉主程序
BEGIN                

 

--修改 部分的逻辑:
--if 修改后的值 != 修改前的值
--if 修改后的值 不等于0, 修改后的值赋值给dept_id
--commit;
--否则修改前的值  = dept_id

--增加修改后的值

IF updating THEN                 
IF nvl(:new.dept_id,0)!=nvl(:old.Dept_Id,0)    --  :new.dept_id*     如果修改后的值不等于修改前的值   前 0  后  15
 THEN                                                   
 IF nvl(:new.dept_id,0)!=0  THEN                                    --     //如果修改后dept_id的值不等于0     
  UPDATE sys_staff_0806 SET dept_id=:new.dept_id,idcardno=:new.dept_id WHERE staff_id=:old.staff_id;  --    // 修改sys_staff_0806 表  当staff_id=:old.staff_id 时,set SET dept_id=:new.dept_id  
  commit; 
  ELSE      //     否则 为0  dept_id不变 (要么为null,要么为正整数。)  
    UPDATE sys_staff_0806 SET dept_id=:old.dept_id,idcardno=:old.dept_id WHERE staff_id=:old.staff_id;
  commit;
  END IF;
  END IF;
----  插入部分完成
 ELSIF  inserting THEN     //新增
   INSERT INTO sys_staff_0806   // 新增表 
(login_user,staff_id,dept_id,staff_sta,address,birthdate,center_id,dis_order,email,fax,grade_id,home_phone,idcardno,is_developer,mobile_phone,msn,nationality,office_phone,staff_name,staff_type) Values(:new.Login_User,:new.Staff_Id,:new.Dept_Id,:new.Staff_Sta,:new.address,:new.birthdate,:new.center_id,:new.dis_order,:new.email,:new.fax,:new.grade_id,:new.home_phone,:new.idcardno,:new.is_developer,:new.mobile_phone,:new.msn,:new.nationality,:new.office_phone,:new.staff_name,:new.staff_type );
  commit;
---  删除部分
  elsif deleting THEN
    DELETE sys_staff_0806 WHERE staff_id=:old.Staff_Id;
    COMMIT;
END IF;
end;  


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值