INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
间隔分区是传统的范围分区方法的一种扩展。为了实现一个表的间隔分区,必须首先对该表指定一个范围分区的最小数目。不管是使用最小的单范围分区还是使用多范围分区,范围分区键的高位值都称为转变点(transition point).当表中的数据越过转变点后,数据库将自动建立间隔分区。
例如,如果对表使用月间隔,范围分区的最高位值为2009年1月1日,则转变点将位于2009年1月1日.第一个月间隔将为2008年1月,它的下界为2008年1月1日。类似,2008年12月的间隔的下界为2008年12月I日。这里,2008年11月的分区是否存在无所谓。
以下是关于间隔分区需要知道的内容:
★ 在CREATE TABLE语句中使用INTERVAL子句创建间隔分区的表。
★ 在指定间隔分区前应该用分区子句指定至少一个范围分区。
★ 不能使用包含多于一个列的分区键。
★ 分区键必须为NUMBER或DATE类型。
★ 可通过在CREATE TABLE语句中包含STORE IN子句,为分区数据选择性地指定表空间。
下面的例子对4个范围分区(标识为p0、p1、p2和p3)创建一个间隔分区表。这4个范围分区在time_id列上创建,转变点为这些范围分区的最高值(2009年1月1日,在分区p3中)。一旦time_id列的值超过2009年1月1日,数据库将自动产生基于间隔的分区,间隔为一个月。
CREATE TABLE interval_sales
(
prod_id NUMBER(6),
cust_id NUMBER,
time_id DATE,
channel_id CHAR(l),
promo_id NUMBER(6),
quantity_sold NUMBER(3),
amount_sold NUMBER(10,2)
)
PARTITION BY RANGE(time_id)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION p0 VALUES LESS THAN (TO_DATE('1-1-2006','DD-MM-YYYY')),
PARTITION p1 VALUES LESS THAN (TO_DATE('1-1-2007','DD-MM-YYYY')),
PARTITION P2 VALUES LESS THAN (TO_DATE('1-1-2008','DD-MM-YYYY')),
PARTITION p3 VALUES LESS THAN (TO DATE('1-1-2009','DD-MM-YYYY'))
);
表中间隔分区的数目不存在限制。在这个例子中,数据库将对每个新月份创建一个新间隔分区。




