我有一个名为OPSWIRE_LOG_RANGE_PARTS的表,该表按日期范围按月划分。
我现在想创建一个PL / SQL程序包,该程序包会将该表中的分区删除6个月以上。
我已经尝试过在线研究,这是我发现的结果,但是我不确定这是否可以完成工作:
BEGIN
FOR cc IN (SELECT partition_name, high_value --
FROM user_tab_partitions
WHERE table_name = 'OPSWIRE_LOG_RANGE_PARTS') LOOP
EXECUTE IMMEDIATE 'BEGIN
IF sysdate >= ADD_MONTHS(' ||
cc.high_value ||
', 6) THEN
EXECUTE IMMEDIATE
''ALTER TABLE OPSWIRE_LOG_RANGE_PARTS DROP PARTITION ' ||
cc.partition_name || '
'';
END IF;
END;';
END LOOP;
END;
/
我们非常感谢您的帮助。