2012-02-23 4 views
4

Как я могу разделять по диапазону для: одного для значений pubdate меньше 1 января 2000; один для значений для публичных объявлений, превышающих или равных 1 января 2000 года и менее 1 января 2010 года; и третий раздел для всех значений pubdate, больше или равных 1 января 2010 года.Oracle 10g Range Partition Query

Как написать мой запрос для части раздела? Я попытался найти примеры, но я просто не понимаю, что положить после раздела.

Мой запрос здесь:

CREATE table lab6_zl (
ID number not null, 
title varchar2(40), 
pubID char(3), 
pubdate date, 
constraint lab6_pk primary key(ID)) 
Partition by range (pubdate) 
(Partition one for pubdate values greater than or equal to Jan 1, 2000), 
(Partition two for for pubdate values less than Jan 1, 2000), 
(Partition three for all pubdate values greater than or equal to Jan 1, 2010); 
+0

Y не совсем там. Я бы предложил прочитать эту страницу: http://www.rampant-books.com/art_nanda_partitioning1.htm – Ben

ответ

4

Попробуйте это:

create table LAB6_ZL 
(
    ID  number not null 
,TITLE  varchar2(40) 
,PUBID  char(3) 
,PUBDATE date 
,constraint LAB6_PK primary key(ID) 
) 
partition by range (PUBDATE) 
    (partition TWO 
    values less than (date '2000-01-01') 
    ,partition ONE 
    values less than (date '2010-01-01') 
    ,partition THREE 
    values less than (MAXVALUE)); 

Порядок разделов должно возноситься так раздел TWO создается первый, как это меньше, чем в 2000 году, а ONE поэтому в период с 2000 по 2009 год. Ключевое слово MAXVALUE в основном означает отсутствие верхнего значения или, что-либо на 1 января 2010 года или после него.