针对项目中产生大量的日志记录,如果不定时清理的话,会导致表空间不足,需要扩展表空间。可以利用Oracle 数据库定时任务来定时清理日志表等操作。

    1、首先建立删除表中日志的存储过程:

create or replace procedure del_testlog is

begin

 delete from del_testlog where to_date(CFSTIME,'yy-mm-dd hh24:mi:ss') < sysdate-1;

 commit;

EXCEPTION

  WHEN NO_DATA_FOUND

  THEN

     NULL;

  WHEN OTHERS

  THEN

     RAISE;

end del_testlog;

2、声明定时任务

declare   

   clearlogs number;

begin

   dbms_job.submit(clearlogs , 'del_testlog ;', sysdate, 'sysdate+ 1+2/(24)');--每天凌晨2点执行

end;

3、-查看任务job  Id

     select * from user_jobs;

4、运行定时任务

begin

   dbms_job.run(步骤3中查询的id);

end;

5、删除定时任务

   begin

    dbms_job.remove(步骤3中查询的id);

   end;

说明:关于定时任务的执行频率

     ①每隔两天执行一次 sysdate + 2

     ②每12个小时执行一次 sysdate + 1/2

     ③ 每分钟执行一次 sysdate + 1/24/60

     ④每2分钟执行一次 sysdate + 2/24/60

     ⑤ 每小时执行一次 sysdate + 1/24

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: oracle