Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Partition table, разделение по функции от значения  [new]
Antipich
Member

Откуда:
Сообщений: 284
Можно ли сделать так, чтобы принадлежность записи к какой-то партиции определялась не по значению поля, а по значению функии от поля. В частности, поле имеет тип date. Нужно записи разделять по значению дня.
16 ноя 08, 01:23    [6445836]     Ответить | Цитировать Сообщить модератору
 Re: Partition table, разделение по функции от значения  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18370
В 11g можно.
16 ноя 08, 03:15    [6445925]     Ответить | Цитировать Сообщить модератору
 Re: Partition table, разделение по функции от значения  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
Antipich
В частности, поле имеет тип date. Нужно записи разделять по значению дня.
Это обычное Range Partitioning.
16 ноя 08, 04:31    [6445939]     Ответить | Цитировать Сообщить модератору
 Re: Partition table, разделение по функции от значения  [new]
gotozero
Member

Откуда: Мск
Сообщений: 192
Интервальное секционирование в 11g!
Но нужно пользоваться только на пропатченной базе!
interval (NUMTODSINTERVAL(1, 'DAY')) - В каждую партицию только один день!
16 ноя 08, 16:31    [6446405]     Ответить | Цитировать Сообщить модератору
 Re: Partition table, разделение по функции от значения  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10051
wurdu
Antipich
В частности, поле имеет тип date. Нужно записи разделять по значению дня.
Это обычное Range Partitioning.


Not really. What Antipich meant, AFAIU, is 7 partitions: Monday,...,Sunday. Prior to 11g you would have to add a column, a trigger that would populate it with day name and create list partition on the added column.

SY.
16 ноя 08, 18:05    [6446541]     Ответить | Цитировать Сообщить модератору
 Re: Partition table, разделение по функции от значения  [new]
11107
Guest
Если в виртуальном столбце стоит PL/SQL-функция, то по нему секционирование не работает:

c:\>sqlplus system/oracle

SQL*Plus: Release 11.1.0.7.0 Production on Sun Nov 16 21:53:41 2008

Copyright (c) 1982, 2008, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
With the Partitioning, Oracle Label Security and OLAP options

SQL> create or replace function getCurrDate return date
  2     deterministic is
  3  begin
  4    return trunc(sysdate);
  5  end;
  6  /

Function created.

SQL> 
SQL> create table test
  2  (
  3    Id        number,
  4    Curr_Date as (getCurrDate())
  5  )
  6  PARTITION BY RANGE (Curr_Date) INTERVAL (NUMTOYMINTERVAL(1,'DAY'))
  7    (PARTITION before_01112008
  8       VALUES LESS THAN (TO_DATE('01.11.2008','dd.mm.yyyy')));
  Curr_Date as (getCurrDate())
                *
ERROR at line 4:
ORA-54021: Cannot use PL/SQL expressions in partitioning or subpartitioning 
columns 

SQL> 
16 ноя 08, 22:01    [6447002]     Ответить | Цитировать Сообщить модератору
 Re: Partition table, разделение по функции от значения  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
SY
wurdu
Antipich
В частности, поле имеет тип date. Нужно записи разделять по значению дня.
Это обычное Range Partitioning.


Not really. What Antipich meant, AFAIU, is 7 partitions:
...
Я исходил из этого топика, где
Antipich

Данные будут чиститься в ней каждый месяц, т.е. это размер с данными за месяц.
...
Отсюда первый вопрос: может следует селать 31 часть-по дням?
Может автор все-таки конкретизирует, чего же ему хочется?
17 ноя 08, 00:56    [6447288]     Ответить | Цитировать Сообщить модератору
 Re: Partition table, разделение по функции от значения  [new]
Antipich
Member

Откуда:
Сообщений: 284
Я пока просто пробумываю идею, как всё это реализовать. Прочитав все ответы в разных моих темах и кучу инфы в нете и книгах, пока решил делать отдельную партицию для каждого календарного дня(а не дня недели)(или по часам-но это в отдельной теме я спрашиваю). Поэтому вопрос в данной теме временно отпадает. Но полученные ответы для меня всё равно очень важны и интересны.
Поэтому огромное спасибо за помощь.

Ещё прошу прощения за столько пораждённых тем.
Просто работа с такими большими таблицами для меня новое, а научитсья в реале не у кого. Поэтому и хочу получить знания от профи с этого форума.

Ещё раз спасибо за помощь.
17 ноя 08, 01:03    [6447298]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить