Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1406077
  • 博文数量: 556
  • 博客积分: 12626
  • 博客等级: 上将
  • 技术积分: 5799
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-11 15:56
个人简介

从事IT基础架构多年,发现自己原来更合适去当老师……喜欢关注新鲜事物,不仅限于IT领域。

文章分类

全部博文(556)

文章存档

2019年(6)

2018年(15)

2017年(17)

2016年(11)

2015年(2)

2014年(2)

2013年(36)

2012年(54)

2011年(100)

2010年(41)

2009年(72)

2008年(14)

2007年(82)

2006年(104)

分类: Oracle

2007-05-25 14:10:45

    有日子没更新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函数来表示的方式,所以用第一种方法就够了。
阅读(3606) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~