create or replace trigger trigger_Twprecord_useDateTime before INSERT ON T_WPPRECORD for each row declare last_datetime date; param_num number; BEGIN select RECTIME into last_datetime from T_WPPRECORD where rownum<=1 order by RECID desc; select PARAMNUMNAME into param_num from t_param_num where PARAMNUMID=2; --RAISE_APPLICATION_ERROR(-20001, to_char(:new.RECTIME,'yyyy-mm-dd hh24:mi:ss')||'test'||to_char(last_datetime,'yyyy-mm-dd hh24:mi:ss')); If ROUND(TO_NUMBER(sysdate - last_datetime) * 24)>=param_num THEN insert into T_WPPRECORD_backup(RECID,RECTIME,STATUS,TOTALACTENERGY,TOTALREENERGY,TOTALACTLOAD,TOTALRELOAD,ACTPLANT,REPLANT,AREAACTENERGY,AREAREENERGY,RESERVED1,RESERVED2,WPPID) select RECID,RECTIME,STATUS,TOTALACTENERGY,TOTALREENERGY,TOTALACTLOAD,TOTALRELOAD,ACTPLANT,REPLANT,AREAACTENERGY,AREAREENERGY,RESERVED1,RESERVED2,WPPID from T_WPPRECORD where RECTIME<=last_datetime; delete from T_WPPRECORD where RECTIME<=last_datetime; END IF; END trigger_Twprecord_useDateTime;