客户有一个创建间隔分区的需求,需要自动创建一个季度的分区。
在oracle11g中,对于range分区可以按照年,月,日来自动创建分区,倒是没有按季度来的。。。
其实这个问题很简单,一个季度也是就是三个月,无非就是将按月的间隔加大了点。
- CREAT TABLE tt
- (
- ID NUMBER(8),
- dd DATE
- )
- PARTITION BY RANGE(dd)
- INTERVAL(NUMTOYMINTERVAL(3,'MONTH'))
- (
- PARTITION P1 VALUES LESS THAN(TO_DATE('2016-04-01','YYYY-MM-DD'))
- );
接着,我执行如下语句:
insert into tt values(1,date'2016-05-28');
commit;
然后发现tt表自动生成了一个小于2016-07-01的分区,符合我之前的需求。
但这种自动分区的方式生成的分区名也是oracle自己命名的,有时候用起来不是那么方便,单看分区表压根不知道是哪个月哪个季度。。。。