1,)实现功能
Oracle实现数据的自动删除大数据量表7天前的数据:
2)遇到问题
我有一张表,实时数据量较大,存储有限,需要定期清理数据库表中数据,怎么办?
3)解决思路
写个存储过程,再建立一个job每天晚上运行一次。
4) 解决方案
第一步,写个存储过程
begin
delete from yourtable where 时间<sysdate-7;
end autoDelGps;
第二步,再建立job
variable jobgps number;
begin
sys.dbms_job.submit(job => :jobgps,
what => 'autoDelGps',
next_date => to_date('2017-10-17 00:00:00', 'yyyy-mm-dd hh24:mi:ss'),
interval => 'sysdate+1');/*每天运行过程一次*/
commit;
end;
标注:
orcle的job不需要调用,会自动运行。
next_date 参数是下一次运行的时间
interval 是间隔时间,从下次运行开始,每隔interval这么长时间就会自动的运行