Jeg kender ikke noget orakelværktøj eller -funktion til at gøre dette. Du kan finde de oplysninger, du skal bruge for at skrive dit eget program for at gøre dette, i visningerne DBA_TAB_PARTITIONS eller ALL_TAB_PARTITIONS, svarende til følgende:
SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE
FROM SYS.DBA_TAB_PARTITIONS
WHERE TABLE_OWNER = strSchema AND
TABLE_NAME = strTable
hvor strSchema og strTable er det skema og den tabel, du er interesseret i. HIGH_VALUE er et LONG-felt, som indeholder koden for et kald til TO_DATE-funktionen (forudsat at din tabel er opdelt i et datofelt); du skal tildele HIGH_VALUE til et LONG-felt og derefter tildele LONG til en VARCHAR2 for at få værdien et sted, hvor den kan manipuleres, på en måde, der ligner:
lHigh_value LONG;
strDate_clause VARCHAR2(100);
lHigh_value := aRow.HIGH_VALUE;
strDate_clause := lHigh_value;
Så skal du blot udtrække de relevante felter fra DATE-klausulen for at bestemme, hvilke partitioner du skal slette.
Del og nyd.