JOG删除错误的CLOG日志
create or replace procedure Day_limit_del_error_data as
begin
declare
page number;
len number;
c varchar2(10);
charpp number := 8132/2;
begin
for r in (select rowid rid,log_id, dbms_lob.getlength (CONTENT) len
from temp_data_collect_log ) loop
if r.len is not null then
for page in 0..r.len/charpp loop
begin
select dbms_lob.substr (CONTENT, 1, 1+ (page * charpp))
into c
from temp_data_collect_log
where rowid = r.rid;
exception
when others then
delete from temp_data_collect_log where log_id=R.log_id;
end;
end loop;
end if;
end loop;
end;
end;
--每天二点执行
declare
pc_job number;
begin
sys.dbms_job.submit(pc_job,'day_limit_del_error_data;',sysdate,'TRUNC(sysdate)+1+2/24');
commit;
end;
时间间隔设置
1)、 每分钟执行
Interval => TRUNC(sysdate,'mi')+1/(24*60)
2)、 每天定时执行
例如:每天的凌晨2点执行
Interval => TRUNC(sysdate)+1+2/24
3)、 每周定时执行
例如:每周一凌晨2点执行
Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天
4)、 每月定时执行
例如:每月1日凌晨2点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24
5)、 每季度定时执行
例如每季度的第一天凌晨2点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24
6)、 每半年定时执行
例如:每年7月1日和1月1日凌晨2点
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24
7)、 每年定时执行
例如:每年1月1日凌晨2点执行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24