触发器简单编写



CREATE OR REPLACE TRIGGER TG_RUHUJIHUA_ZT_UPDATE BEFORE
UPDATE OF RH_ZHUANGTAI ON RUHUJIHUA FOR EACH ROW
BEGIN
V_DATA_RH_XIACI_CB_RQ date;
  V_DATA_RH_XIACI_CB_RQ = NULL;
 
  IF :OLD.RH_ZHUANGTAI='1' AND :NEW.RH_ZHUANGTAI='2'--执行中 到 待执行
     V_DATA_RH_XIACI_CB_RQ = :NEW.RH_RQXZTJ;
  ELSE
    IF :OLD.RH_ZHUANGTAI='2' AND :NEW.RH_ZHUANGTAI='1'--待执行 到 执行中
    BEGIN
    --频率单位为月,执行日期的年月日+周期的月数,然后截取年月加抄表日
      CASE
       WHEN :NEW.RH_JHZQ='1' THEN
       V_DATA_RH_XIACI_CB_RQ = TO_DATE(TO_CHAR(ADD_MONTHS(:NEW.RH_RQXZTJ,:NEW.RH_JHPL),'YYYYMM')||:NEW.RH_JHRQ,'YYYYMMDD');
      
    --频率单位为天,执行日期的年月日+周期的天数
       WHEN :NEW.RH_JHZQ='2' THEN
        V_DATA_RH_XIACI_CB_RQ = TO_DATE(TO_CHAR(:NEW.RH_RQXZTJ+:NEW.RH_JHPL,'YYYYMM')||:NEW.RH_JHRQ,'YYYYMMDD');
     
    --频率单位为不定期,不做处理
       WHEN :NEW.RH_JHZQ='3' THEN

       ELSE
      
       END

    END
   
    IF V_DATA_RH_XIACI_CB_RQ IS NOT NULL   
       UPDATE RUHUJIHUA
         SET RH_XIACI_CB_RQ = V_DATA_RH_XIACI_CB_RQ;
END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值