使用 dbms_scheduler 定期删除大表中的历史记录

本文详细介绍了如何在Oracle RAC环境下使用PL/SQL编写一个存储过程WM71.DEL_HIS_BIZDOCCONTENT来删除历史文档内容,并通过调度器设置为每日定时执行此任务。

Oracle 10.2.0.4   ,   RAC 

 

CREATE OR REPLACE PROCEDURE  WM71.DEL_HIS_BIZDOCCONTENT(p_status OUT  VARCHAR2)
AS
   BEGIN 

delete from  wm71.bizdoccontent where
  docid  in
   ( select docid  from  wm53.bizdoc 
          where doctimestamp < sysdate -40
               and doctimestamp >= sysdate -41) ; 

commit ; 

delete from  wm71.bizdoccontent where
   docid  in
     ( select docid  from  wm53.bizdoc 
          where doctimestamp < sysdate -41
                 and doctimestamp >= sysdate -42) ; 
 
commit ; 

     p_status  := SQLCODE ; 

   EXCEPTION
          WHEN OTHERS
   THEN
        p_status := SQLCODE || 'EXCEPTION OCCURED IN WM71.DEL_HIS_BIZDOCCONTENT PROCEDURE' ||

SUBSTR(SQLERRM,1,128); 
        -- DBMS_OUTPUT.PUT('EXCEPTION OCCURED IN WM71.DEL_HIS_BIZDOCCONTENT' || SQLCODE ||

SUBSTR(SQLERRM,1,400));
   END;
/

 

 

 

begin
 dbms_scheduler.create_job('DEL71_HIS_BIZDOCCONTENT_JOB',
   job_action=> 'WM71.DEL_HIS_BIZDOCCONTENT'  ,
  start_date => sysdate ,  
   repeat_interval => 'FREQ=DAILY; BYHOUR=07,08 ;  BYMINUTE=0,30',
   job_type=>'STORED_PROCEDURE', enabled=>TRUE);
 end;
/


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-712438/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-712438/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值