有日子没更新blog了,一堆杂七杂八的事情,让自己把时间都消耗在其它事情上了。趁着现在有功夫,更新一把。
今天开发人员问到了分区表的问题,好处就不多说了,他们是想用一个date类型的字段做分区字段,虽然我不建议这么做,不过方法总要说的。其实分区方法都差不多,使用range分区就可以了,不过由于每个数据库设置的时间格式不同,使得partition部分的语法往往会出现错误。为了避免这个问题可以使用to_date函数来解决。语句例子如下:
CREATE TABLE test(
timetest date,
a1 number )
PARTITION BY RANGE ( timetest)
( PARTITION test_q1 VALUES LESS THAN ( to_date('20070101 00:00:00','yyyymmdd hh24:mi:ss') ),
PARTITION test_q2 VALUES LESS THAN ( to_date('20070201 00:00:00','yyyymmdd hh24:mi:ss') ),
PARTITION test_q3 VALUES LESS THAN ( maxvalue )
)
ENABLE ROW MOVEMENT;
如果你知道这个数据库的时间格式的话也可以直接用下面的语句:
CREATE TABLE test(
timetest date,
a1 number )
PARTITION BY RANGE ( timetest)
( PARTITION test_q1 VALUES LESS THAN ( '01-1月-2007' ),
PARTITION test_q2 VALUES LESS THAN ( '01-2月-2007' ),
PARTITION test_q3 VALUES LESS THAN ( maxvalue )
)
ENABLE ROW MOVEMENT;
要注意的是,时间格式不同,分区定义里面的时间写法也不同。
其实oracle会自动把第二个写法中的分区值转换成to_date函数来表示的方式,所以用第一种方法就够了。
阅读(3700) | 评论(2) | 转发(0) |