使用job和存储过程定期的删除库中的数据

 

CREATE OR REPLACE PROCEDURE sp_kpi_Dropdata
 IS
   vv_starttime    NUMBER(10);
   vn_min_days     NUMBER;
   vn_hour_days    NUMBER;
   vv_sqlstr       VARCHAR2(4000);
BEGIN

   vn_min_days    := 2; --days
   vn_hour_days   := 7; --days

   BEGIN
      -- table's history data
     FOR v_cursor IN (SELECT TABLE_NAME
     --当前用户可访问的所有分区表的详细分区信息
     FROM ALL_tab_partitions a
     WHERE TABLE_NAME  in                         

('PB_BSC_KQI_RTKPI_HOU','PB_BSC_KQI_RTKPI_MIN','PB_CELLGROUP_KQI_RTKPI_HOU','PB_CELLGROUP_KQI_RTKPI_MIN'
      ,'PB_CITY_KQI_RTKPI_HOU','PB_CITY_KQI_RTKPI_MIN','PB_MSC_KQI_RTKPI_HOU','PB_MSC_KQI_RTKPI_MIN' )) 
  
    loop
         IF (v_cursor.TABLE_NAME like '%MIN')  THEN
            vv_starttime := (trunc(sysdate)-vn_min_days-1-to_date('19700101','yyyymmdd'))*86400-1;
         ELSIF (v_cursor.TABLE_NAME like '%HOU') THEN
            vv_starttime := (trunc(sysdate)-vn_hour_days-1-to_date('19700101','yyyymmdd'))*86400-1;
         END IF;

            BEGIN
               vv_sqlstr := 'delete from '||
                            v_cursor.table_name || ' where starttime<= ' ||
                            vv_starttime;

               EXECUTE IMMEDIATE vv_sqlstr;
                    commit;
            EXCEPTION
               WHEN OTHERS THEN
                     rollback;

            END;
      END LOOP;

end;
END;
/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值