Saya tidak tahu ada utilitas atau fungsi Oracle untuk melakukan ini. Anda dapat menemukan informasi yang Anda butuhkan untuk menulis program Anda sendiri untuk melakukannya di tampilan DBA_TAB_PARTITIONS atau ALL_TAB_PARTITIONS, mirip dengan berikut ini:
SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE
FROM SYS.DBA_TAB_PARTITIONS
WHERE TABLE_OWNER = strSchema AND
TABLE_NAME = strTable
di mana strSchema dan strTable adalah skema dan tabel yang Anda minati. HIGH_VALUE adalah bidang PANJANG yang berisi kode untuk panggilan ke fungsi TO_DATE (dengan asumsi tabel Anda dipartisi pada bidang tanggal); Anda harus menetapkan HIGH_VALUE ke bidang LONG, lalu menetapkan LONG ke VARCHAR2 untuk mendapatkan nilai di suatu tempat yang dapat dimanipulasi, dengan cara yang mirip dengan:
lHigh_value LONG;
strDate_clause VARCHAR2(100);
lHigh_value := aRow.HIGH_VALUE;
strDate_clause := lHigh_value;
Kemudian Anda hanya perlu mengekstrak bidang yang sesuai dari klausa DATE untuk menentukan partisi mana yang perlu Anda hapus.
Bagikan dan nikmati.