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

posted @ 2012-03-29 17:31  天纯蓝  阅读(251)  评论(0编辑  收藏  举报