循环删除大表数据(delete|循环删除大表数据(delete 指定日期、指定条件前数据)
循环删除大表数据(delete 指定日期、指定条件前数据)
DECLARE
HOWMANY_10MINS NUMBER;
-- 指定时间节点,删除该时间之前过滤数据。
-- 请一定注意 LOOP 中 DELETE 条件过滤,否则将全部删除!!!
SPECIFY_TIMEDATE := TO_DATE('2021/07/30 23:59:59','yyyy/MM/dd hh24:mi:ss');
BEGIN_TIMEDATE;
END_TIMEDATE;
BEGIN
SELECT (SPECIFY_TIME - TRUNC(MIN(T.COLLECTTIME), 'DD')) * 24 * 6 HOWMANY_10MINS
INTO HOWMANY_10MINS
FROM IMES_SAC1_MD.DEVICE_COLLECT_DATA T;
FOR X IN 0 .. HOWMANY_10MINS LOOP
BEGIN_TIME := SPECIFY_TIME - (X + 1) / 24 / 6;
END_TIME:= SPECIFY_TIME - X / 24 / 6;
-- delete 操作,请修改删除表信息,及 where 过滤条件。
DELETE FROM IMES_SAC1_MD.DEVICE_COLLECT_DATA T
WHERE T.COLLECTTIME BETWEEN BEGIN_TIME AND END_TIME;
/*INSERT INTO TT VALUES (X, BEGIN_TIME, END_TIME, SYSDATE);
*/
COMMIT;
END LOOP;
END;
/
推荐阅读
- whlie循环和for循环的应用
- 能力和自信的良性循环
- win7删除新建不自动刷新
- 时间管理的任务模型
- bu删除,不拉黑,不联系
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- Swift7|Swift7 - 循环、函数
- vue|vue 上移 下移 删除 排序
- for循环遍历数组
- 带你了解NodeJS事件循环