oracle 11g的interval partition 如何按天\周\月\年分区

ORACLE11g的表分区功能中可以建立新类型的Interval分区表,它可以根据加载数据,自动创建指定间隔的分区,也就是说建立了Interval分区 ,就不必像ORACLE10以前的表分区那样需要提前为新数据建立分区,它会自动创建,以下是创建的语句。注意其中INTERVAL后面指定的关键词,对于月与天是不同的,具体已经标注出来。


按年分区:
CREATE TABLE TEST_PART
(TIME_ID NUMBER,
REGION_ID NUMBER,
ORDER_ID NUMBER,
ORDER_DATE DATE
)
PARTITION BY RANGE (ORDER_DATE)
  INTERVAL (NUMTOYMINTERVAL(1,'year')
       (PARTITION part1
          VALUES LESS THAN (TO_DATE ('2013-06-01', 'YYYY-MM-DD')),
        PARTITION part2
          VALUES LESS THAN (TO_DATE ('2014-06-01', 'YYYY-MM-DD'))
        )




按月分区:
CREATE TABLE TEST_PART
(TIME_ID NUMBER,
REGION_ID NUMBER,
ORDER_ID NUMBER,
ORDER_DATE DATE
)
PARTITION BY RANGE (ORDER_DATE)
INTERVAL (NUMTOYMINTERVAL(1,’month’)
   (PARTITION part1
       VALUES LESS THAN (TO_DATE ('2013-06-01', 'YYYY-MM-DD')),
    PARTITION part2
       VALUES LESS THAN (TO_DATE ('2013-07-01', 'YYYY-MM-DD'))
    )

按周分区:

CREATE TABLE TEST_PART
(TIME_ID NUMBER,
REGION_ID NUMBER,
ORDER_ID NUMBER,
ORDER_DATE DATE
)
INTERVAL ( NUMTODSINTERVAL (7, 'day') )
   (PARTITION part1
       VALUES LESS THAN (TO_DATE ('2013-06-01', 'YYYY-MM-DD')),
    PARTITION part2
       VALUES LESS THAN (TO_DATE ('2013-06-08', 'YYYY-MM-DD'))
  )


按天分区:

CREATE TABLE TEST_PART
(TIME_ID NUMBER,
REGION_ID NUMBER,
ORDER_ID NUMBER,
ORDER_DATE DATE
)
INTERVAL ( NUMTODSINTERVAL (1, 'day') )
   (PARTITION part1
       VALUES LESS THAN (TO_DATE ('2013-06-01', 'YYYY-MM-DD')),
    PARTITION part2
       VALUES LESS THAN (TO_DATE ('2013-06-02', 'YYYY-MM-DD'))
  )

这两个关键词的不同之处 在于:

numtodsinterval(<x>,<c>) ,x是一个数字,c是一个字符串,

表明x的单位,这个函数把x转为interval day to second数据类型
常用的单位有 ('day','hour','minute','second')
example
SQL> select sysdate,sysdate+numtodsinterval(3,'hour') as res from dual;
SYSDATE             RES
------------------- -------------------
2007-09-05 01:45:34 2007-09-05 04:45:34
numtoyminterval 与numtodsinterval函数类似,将x转为interval year to month数据类型
常用的单位有'year','month'
example
SQL> select sysdate,sysdate+numtoyminterval(3,'year') as res from dual;
SYSDATE             RES
------------------- -------------------
2007-09-05 01:54:53 2010-09-05 01:54:53

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值