これを行うためのOracleユーティリティまたは関数を知りません。これを行うために独自のプログラムを作成するために必要な情報は、次のようにDBA_TAB_PARTITIONSまたはALL_TAB_PARTITIONSビューにあります。
SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE
FROM SYS.DBA_TAB_PARTITIONS
WHERE TABLE_OWNER = strSchema AND
TABLE_NAME = strTable
ここで、strSchemaとstrTableは、関心のあるスキーマとテーブルです。HIGH_VALUEは、TO_DATE関数を呼び出すためのコードを含むLONGフィールドです(テーブルが日付フィールドでパーティション化されていると想定)。次のような方法で操作できる場所に値を取得するには、HIGH_VALUEをLONGフィールドに割り当ててから、LONGをVARCHAR2に割り当てる必要があります。
lHigh_value LONG;
strDate_clause VARCHAR2(100);
lHigh_value := aRow.HIGH_VALUE;
strDate_clause := lHigh_value;
次に、削除する必要のあるパーティションを決定するために、DATE句から適切なフィールドを抽出する必要があります。
共有してお楽しみください。