oracle自动删除数据

我的例子是将3天之前的数据插入历史表t1_HIS,当前表t1中只保留3天的数据。
CREATE OR REPLACE PROCEDURE PR_BACKUPDATA
IS
ENDTIME DATE;

--错误日志变量声明
v_ErrorCode NUMBER; -- Code for the error
v_ErrorMsg VARCHAR2(200); -- Message text for the error
v_CurrentUser VARCHAR2(8); -- Current database user
v_Information VARCHAR2(100); -- Information about the error

BEGIN

-- 判断时间,对历史表进行插入操作,对当前表进行删除数据,当前表只保留三天的数据
ENDTIME:= SYSDATE -3;

--向历史表写入运行线数据
INSERT INTO T1_HISDATA QUERY
SELECT * FROM T1 WHERE END_TIME <= ENDTIME;

--清除当前表中三天前的数据
DELETE FROM T1 WHERE END_TIME <= ENDTIME;

COMMIT;
END IF;


EXCEPTION
WHEN OTHERS THEN

ROLLBACK;


-- Assign values to the log variables, using built-in functions.
v_ErrorCode := SQLCODE;
v_ErrorMsg := SQLERRM;
v_CurrentUser := USER;
v_Information := '用户: ' || v_CurrentUser;
INSERT INTO ERROR_LOG (ERROR_CODE, ERROR_MESSAGE, ERROR_INFO, TIME)
VALUES (v_ErrorCode, v_ErrorMsg, v_Information, SYSDATE);

COMMIT;
END;
然后在用Job,每小时执行一次。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值