區間分區根據分區值的範圍,劃定分區
create table range_example
(
range_dateTime date,
data varchar2(20)
)
partition by range(range_datetime)
(
partition range_part1 values less than(to_date('2013-12-19','YYYY-MM-DD')) tablespace example,
partition range_part2 values less than (to_date('2014-01-30','YYYY-MM-DD'))
);
---插入第一分區
insert into range_example ( range_dateTime,data) values(to_date('2013-12-18','YYYY-MM-DD'),'part1');
commit;
---插入第二分區
insert into range_example ( range_dateTime,data) values(add_months(to_date('2013-12-18','YYYY-MM-DD'),1),'part2');
commit;
---無法插入
insert into range_example ( range_dateTime,data) values(add_months(to_date('2013-12-18','YYYY-MM-DD'),2),'無法插入');
commit;
對於上面問題解決方法:
1、添加一個分區
alter table range_example add partition range_part3 values less than (maxvalue);
insert into range_example ( range_dateTime,data) values(add_months(to_date('2013-12-18','YYYY-MM-DD'),2),'part2');
commit;
如果以後還要增加分區——進行分割
alter table range_example split partition range_Maxpart at(to_date('2014-8-6','YYYY-MM-DD') )
into(partition range_part3,partition range_Maxpart);
添加了最大值範圍後,將日期爲空的值放在range_maxPart中
2、使用間隔分區