これは、Oracle 11gでそれを行う方法の例であり、非常にうまく機能します。 Oracle10gでは試していません。試すことができます。
これが、毎日のパーティションを持つテーブルを作成する方法です。
CREATE TABLE XXX (
partition_date DATE,
...,
...,
)
PARTITION BY RANGE (partition_date)
INTERVAL (NUMTODSINTERVAL(1, 'day'))
(
PARTITION part_01 values LESS THAN (TO_DATE('2000-01-01','YYYY-MM-DD'))
)
TABLESPACE MY_TABLESPACE
NOLOGGING;
上記のように、Oracleは、2000年1月1日以降、個別のpartition_dayごとに個別のパーティションを自動的に作成します。partition_dateがこの日付よりも古いレコードは、「part_01」というパーティションに格納されます。
次のステートメントを使用して、テーブルパーティションを監視できます。
SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';
その後、一部のパーティションを削除する場合は、次のコマンドを使用します。
ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES
ここで、「AAAAAA」はパーティション名です。
お役に立てば幸いです!