aqui está um exemplo de como fazer isso no Oracle 11g e funciona muito bem. Eu não tentei no Oracle 10g, você pode tentar.
Este é o caminho, como criar uma tabela com partições diárias:
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;
Como você pode ver acima, o Oracle criará automaticamente partições separadas para cada partição_dia distinta após 1º de janeiro de 2000. Os registros, cuja data_partição for anterior a esta data, serão armazenados na partição chamada 'part_01'.
Você pode monitorar suas partições de tabela usando esta instrução:
SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';
Depois, quando você quiser excluir algumas partições, use o seguinte comando:
ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES
onde 'AAAAAA' é o nome da partição.
Espero que ajude você!