У меня вопрос Oracle SQL.Таблица перехвата раздела с определенным идентификатором
Мне нужно разбить существующую таблицу (заполненную данными) на определенный идентификатор. Я сделал некоторые исследования, но я не понимаю, как это сделать. Когда я генерировать скрипт из уже сделанного секционированной таблицы (В жаба) я получаю этот выход:
PARTITION BY LIST (ID)
(
PARTITION SAMPLE_TABLE_6226563032 VALUES (6226563032)
LOGGING
NOCOMPRESS
TABLESPACE samplespace
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MAXSIZE UNLIMITED
MINEXTENTS 1
MAXEXTENTS UNLIMITED
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
),
PARTITION SAMPLE_TABLE_6164428638 VALUES (6164428638)
LOGGING
NOCOMPRESS
TABLESPACE samplespace
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MAXSIZE UNLIMITED
MINEXTENTS 1
MAXEXTENTS UNLIMITED
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
),
PARTITION SAMPLE_TABLE_6164428803 VALUES (6164428803)
LOGGING
NOCOMPRESS
TABLESPACE samplespace
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MAXSIZE UNLIMITED
MINEXTENTS 1
MAXEXTENTS UNLIMITED
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
)
Вы можете видеть, что есть раздел для каждого идентификатора, и это 100+ IDS/записи.
Кто-нибудь знает решение?
Заранее спасибо.
EDIT1 (добавлен ответ здесь для удобства чтения):
Спасибо за ответ, Wernfried! Вглядываясь в него, когда мы говорим. Но я также ищу инструкцию раздела. Поскольку это должен быть список, но во всех примерах, когда они делают раздел списка, они добавляют жестко заданные значения. Как это:
PARTITION BY LIST (LOC_CODE) ( PARTITION GRABB VALUES ('IND'), PARTITION CNILX VALUES ('NZ'), PARTITION NOAAS VALUES ('SL'), PARTITION SGIND VALUES ('RSA'), PARTITION SAARA VALUES ('PAK'), PARTITION MYABB VALUES ('USA') )
В то время как на самом деле должен быть динамическим (для каждого ID).
EDIT2: Я сделал это:
partition by range (id) interval (1) (PARTITION "P0" VALUES LESS THAN (1)) TABLESPACE "TABLESPAXE" ;
Но когда я хочу, чтобы вставить данные
insert into partitioned_table select * from original_table where id=123456 ;
Он бросает исключение:
"ORA-14300: partitioning key maps to a partition outside maximum permitted number of partitions"
Итак, я думаю, что базы данных 12С автоматически не создают разделы вставки? или я ошибаюсь?
Есть ли особые причины для создания более 100 разделов на одной таблице? Это действительно огромная таблица. –
Это необходимо для компании, что этот db предназначенный для – Deirfnrew