Nie znam żadnego narzędzia ani funkcji wyroczni, która mogłaby to zrobić. Informacje potrzebne do napisania własnego programu można znaleźć w widokach DBA_TAB_PARTITIONS lub ALL_TAB_PARTITIONS, podobnie jak poniżej:
SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE
FROM SYS.DBA_TAB_PARTITIONS
WHERE TABLE_OWNER = strSchema AND
TABLE_NAME = strTable
gdzie strSchema i strTable to interesujący Cię schemat i tabela. HIGH_VALUE to pole LONG zawierające kod wywołania funkcji TO_DATE (zakładając, że Twoja tabela jest podzielona na partycje według pola daty); musisz przypisać HIGH_VALUE do pola LONG, a następnie przypisać LONG do VARCHAR2, aby uzyskać wartość w miejscu, w którym można nią manipulować, w sposób podobny do:
lHigh_value LONG;
strDate_clause VARCHAR2(100);
lHigh_value := aRow.HIGH_VALUE;
strDate_clause := lHigh_value;
Następnie wystarczy wyodrębnić odpowiednie pola z klauzuli DATE, aby określić, które partycje należy usunąć.
Dziel się i ciesz.