Ik ken geen orakelhulpprogramma of functie om dit te doen. Je kunt de informatie vinden die je nodig hebt om je eigen programma te schrijven om dit te doen in de DBA_TAB_PARTITIONS- of ALL_TAB_PARTITIONS-weergaven, vergelijkbaar met het volgende:
SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE
FROM SYS.DBA_TAB_PARTITIONS
WHERE TABLE_OWNER = strSchema AND
TABLE_NAME = strTable
waarbij strSchema en strTable het schema en de tabel zijn waarin u geïnteresseerd bent. HIGH_VALUE is een LONG-veld dat de code bevat voor een aanroep van de TO_DATE-functie (ervan uitgaande dat uw tabel is gepartitioneerd in een datumveld); je moet HIGH_VALUE toewijzen aan een LONG-veld en vervolgens de LONG toewijzen aan een VARCHAR2 om de waarde ergens te krijgen waar het kan worden gemanipuleerd, op een manier die vergelijkbaar is met:
lHigh_value LONG;
strDate_clause VARCHAR2(100);
lHigh_value := aRow.HIGH_VALUE;
strDate_clause := lHigh_value;
Vervolgens hoeft u alleen de juiste velden uit de DATE-component te extraheren om te bepalen welke partities u moet verwijderen.
Deel en geniet.