使用job和存储过程定期的删除库中的数据
2011-10-08 15:52
232 查看
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;
/
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;
/
相关文章推荐
- Mysql使用存储过程和Event事件定期删除数据
- Linq to sql:使用存储过程删除数据
- linux下使用crontab和存储过程定期删除db2的表
- [ORACLE]通用备份数据存储过程,适合编辑/删除前需要备份数据时使用
- Script:创建一个job,通过存储过程定期删除数据的脚本
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
- VB使用ADO中recordeset.delete删除数据记录问题
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(二):删除表格中的数据
- 第十三章——表和索引分区(2)——使用拆分删除和加载大数据
- Oracle通过JOB定时自动操作数据库删除数据
- solr使用curl导入json数据以及admin页面删除索引数据
- VC中ADO使用SQLOLEDB数据驱动时,无法获取存储过程RAISERROR返回的字符串描述
- cron job的方式定时备份Redis的数据文件,并将备份文件copy到安全的磁盘介质中。创建一个定期任务(cron job)
- mysql使用存储过程循环插入数据
- 使用Oracle9i的新特性Flashback Query恢复误删除数据
- 使用mysql存储过程添加数据
- MSSQL 中使用modify()方法,此方法使用XML DML语句在XML 数据中插入,更新或删除节点
- 使用简单的方法进行批量删除数据
- 使用 SELECT 语句从表中取数据 创建新表 字段属性 向表中添加数据 删除
- 使用保存点恢复删除的数据 oracle数据库恢复