Ich kenne kein Orakel-Dienstprogramm oder eine Funktion, um dies zu tun. Sie können die Informationen, die Sie benötigen, um Ihr eigenes Programm dafür zu schreiben, in den Ansichten DBA_TAB_PARTITIONS oder ALL_TAB_PARTITIONS finden, ähnlich wie in den folgenden:
SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE
FROM SYS.DBA_TAB_PARTITIONS
WHERE TABLE_OWNER = strSchema AND
TABLE_NAME = strTable
wobei strSchema und strTable das Schema und die Tabelle sind, an denen Sie interessiert sind. HIGH_VALUE ist ein LONG-Feld, das den Code für einen Aufruf der TO_DATE-Funktion enthält (vorausgesetzt, Ihre Tabelle ist nach einem Datumsfeld partitioniert); Sie müssen HIGH_VALUE einem LONG-Feld zuweisen und dann LONG einem VARCHAR2 zuweisen, um den Wert an einer Stelle zu erhalten, an der er bearbeitet werden kann, ähnlich wie bei:
lHigh_value LONG;
strDate_clause VARCHAR2(100);
lHigh_value := aRow.HIGH_VALUE;
strDate_clause := lHigh_value;
Dann müssen Sie nur die entsprechenden Felder aus der DATE-Klausel extrahieren, um zu bestimmen, welche Partitionen Sie löschen müssen.
Teilen und genießen.