đây là một ví dụ về cách thực hiện trên Oracle 11g và nó hoạt động rất tốt. Tôi chưa dùng thử trên Oracle 10g, bạn có thể thử.
Đây là cách, cách tạo bảng với phân vùng hàng ngày:
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;
Như bạn thấy ở trên, Oracle sẽ tự động tạo các phân vùng riêng biệt cho mỗi ngày phân vùng riêng biệt sau ngày 1 tháng 1 năm 2000. Các bản ghi có ngày phân vùng cũ hơn ngày này, sẽ được lưu trữ trong phân vùng có tên 'part_01'.
Bạn có thể theo dõi các phân vùng bảng của mình bằng cách sử dụng câu lệnh sau:
SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';
Sau đó, khi bạn muốn xóa một số phân vùng, hãy sử dụng lệnh sau:
ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES
trong đó 'AAAAAA' là tên parition.
Tôi hy vọng nó sẽ giúp bạn!