2017-01-17 9 views
0

Я хочу использовать составной список диапазонов в оракуле.Исключить значения из раздела оракула

Использование диапазона довольно ясно для меня. Трудная часть находится в разделе списка, и именно здесь у меня есть вопрос.

Предположим, у нас есть колонна с континентами. Я хочу, чтобы раздел списка включал все континенты, которые являются NOT Европа. Проблема здесь в том, что я не могу создать раздел списка, включающий все другие континенты, кроме Европы, так как в какой-то момент я мог бы добавить новые континенты.

Возможно ли это как можно?

ответ

2

От Oracle documentation

со списком разделов, нет никакого очевидного смысла порядка между перегородок. Вы также можете указать раздел по умолчанию, в который отображаются строки , которые не сопоставляются ни с одним другим разделом.

На основании выше вы можете создать два раздела: один для Европы и другой для других, а также установить по умолчанию. Таким образом, вы можете иметь свои данные в Европе в одном разделе, и все, кроме Европы, переходит в раздел по умолчанию.

Вот пример

CREATE TABLE sample_regional_sales 
     (deptno number, item_no varchar2(20), 
     txn_date date, txn_amount number, state varchar2(2)) 
    PARTITION BY RANGE (txn_date) 
    SUBPARTITION BY LIST (state) 
     (PARTITION q1_1999 VALUES LESS THAN (TO_DATE('1-APR-1999','DD-MON-YYYY')) 
      TABLESPACE tbs_1 
     (SUBPARTITION q1_1999_northwest VALUES ('OR', 'WA'), 
      SUBPARTITION q1_1999_southwest VALUES ('AZ', 'UT', 'NM'), 
      SUBPARTITION q1_1999_northeast VALUES ('NY', 'VM', 'NJ'), 
      SUBPARTITION q1_1999_southeast VALUES ('FL', 'GA'), 
      SUBPARTITION q1_others VALUES (DEFAULT) TABLESPACE tbs_4 
     ), 
     PARTITION q2_1999 VALUES LESS THAN (TO_DATE('1-JUL-1999','DD-MON-YYYY')) 
      TABLESPACE tbs_2 
     (SUBPARTITION q2_1999_northwest VALUES ('OR', 'WA'), 
      SUBPARTITION q2_1999_southwest VALUES ('AZ', 'UT', 'NM'), 
      SUBPARTITION q2_1999_northeast VALUES ('NY', 'VM', 'NJ'), 
      SUBPARTITION q2_1999_southeast VALUES ('FL', 'GA'), 
      SUBPARTITION q2_1999_northcentral VALUES ('SD', 'WI'), 
      SUBPARTITION q2_1999_southcentral VALUES ('OK', 'TX') 
     ), 
     PARTITION q3_1999 VALUES LESS THAN (TO_DATE('1-OCT-1999','DD-MON-YYYY')) 
      TABLESPACE tbs_3 
     (SUBPARTITION q3_1999_northwest VALUES ('OR', 'WA'), 
      SUBPARTITION q3_1999_southwest VALUES ('AZ', 'UT', 'NM'), 
      SUBPARTITION q3_others VALUES (DEFAULT) TABLESPACE tbs_4 
     ), 
     PARTITION q4_1999 VALUES LESS THAN (TO_DATE('1-JAN-2000','DD-MON-YYYY')) 
      TABLESPACE tbs_4 
    ); 

source

+0

Виджаякумар Udupa, я просто пришел и вместе со значением DEFAULT. Я, конечно же, дам ему попробовать и сообщить о моих результатах. Спасибо ! – Stephan

+0

@Stephan Любая удача с испытанием? –

+0

Да, это сработало. У меня нет увеличения производительности в моих запросах, хотя по сравнению со старой таблицей, но это еще одна тема. Сейчас я столкнулся с новой проблемой с индексами разделов на дочерних разделах. Спасибо за ваш ответ. – Stephan

 Смежные вопросы

  • Нет связанных вопросов^_^