oto przykład, jak to zrobić na Oracle 11g i działa bardzo dobrze. Nie próbowałem tego na Oracle 10g, możesz spróbować.
Oto sposób tworzenia tabeli z dziennymi partycjami:
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;
Jak widać powyżej, Oracle automatycznie utworzy oddzielne partycje dla każdego odrębnego dnia partycji po 1 stycznia 2000 r. Rekordy, których data_partycji jest starsza niż ta data, będą przechowywane w partycji o nazwie „part_01”.
Możesz monitorować partycje tabeli za pomocą tej instrukcji:
SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';
Następnie, jeśli chcesz usunąć niektóre partycje, użyj następującego polecenia:
ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES
gdzie 'AAAAAA' to nazwa partycji.
Mam nadzieję, że ci to pomoże!