här är ett exempel på hur man gör det på Oracle 11g och det fungerar väldigt bra. Jag har inte provat det på Oracle 10g, du kan prova det.
Så här skapar du en tabell med dagliga partitioner:
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;
Som du ser ovan kommer Oracle automatiskt att skapa separata partitioner för varje distinkt partition_day efter 1 januari 2000. Posterna, vars partition_date är äldre än detta datum, kommer att lagras i en partition som heter 'part_01'.
Du kan övervaka dina tabellpartitioner med detta uttalande:
SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';
Efteråt, när du vill ta bort vissa partitioner, använd följande kommando:
ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES
där 'AAAAAA' är partionsnamn.
Jag hoppas att det kommer att hjälpa dig!