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;