PROCEDURE purge_partitions
(
p_owner IN VARCHAR2
,p_name IN VARCHAR2
,p_retention_period IN NUMBER
) IS
BEGIN
FOR partition_rec IN (SELECT partition_name
,high_value
FROM dba_tab_partitions
WHERE table_owner = p_owner
AND table_name = p_name)
LOOP
IF SYSDATE >= add_months(to_date(substr(partition_rec.high_value
,12
,19)
,'YYYY-MM-DD HH24:MI:SS')
,p_retention_period)
THEN
execute_immediate('ALTER TABLE ' || p_owner || '.' ||
p_name || ' DROP PARTITION ' ||
partition_rec.partition_name)
END IF;
END LOOP;
END purge_partitions;
Процедура Purge_Partitions работает с удалением разделов на основе
специфические условия удержания, упомянутые в отдельной таблице конфигурации. я
сейчас пытаюсь расширить эту функциональность, которая позаботится о
восстановление глобальных индексов этих секционированных таблиц. Не уверен, как идти по этому поводу, любая помощь высоко ценится.