Oracle 11G的间隔分区怎么创建 求语法
发布网友
发布时间:2022-04-20 02:49
我来回答
共2个回答
热心网友
时间:2022-04-07 19:11
间隔分区只适用于range类型的分区。
CREATE TABLE interval_sales
( prod_id NUMBER(6)
, cust_id NUMBER
, time_id DATE
, channel_id CHAR(1)
, 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-2008', 'DD-MM-YYYY')),
PARTITION p1 VALUES LESS THAN (TO_DATE('1-1-2009', 'DD-MM-YYYY')),
PARTITION p2 VALUES LESS THAN (TO_DATE('1-7-2009', 'DD-MM-YYYY')),
PARTITION p3 VALUES LESS THAN (TO_DATE('1-1-2010', 'DD-MM-YYYY')) );
上面的例子表示除了上面已经定义的分区以外,每个月只要有数据,就会新建一个分区。
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH')) 按月
INTERVAL (NUMTODSINTERVAL(1,’day’)) 按天
INTERVAL(NUMTOYMINTERVAL(1, 'YEAR')) 按年追问PARTITION p0 VALUES LESS THAN (TO_DATE('1-1-2008', 'DD-MM-YYYY'))是什么意思?
追答这是建立表的时候,创建的初始分区。
意思就是partition 名称为p0,所有满足字段time_id 小于2008年1月1日的数据都会放到这个分区里面。
热心网友
时间:2022-04-07 20:29
http://wenku.baidu.com/link?url=7kz-K6TeF1EzOPNWNDTSXPYGIRrMf5pTnA_cx5NTpK_yIl_XyU8xiQU9Oi08Q7KRj3TjO8KUlYAIuoRChVlz5_XKfOgWs9hYFjuYAD37dPC
参考百度文库