Имам въпрос за Oracle SQL.
Трябва да разделя съществуваща таблица (пълна с данни) по конкретен идентификатор. Направих някои изследвания, но не виждам как. Когато генерирам скрипт от вече направена разделена таблица (в toad), получавам този резултат:
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
)
Можете да видите, че има дял за всеки ID и това за 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"
Така че предполагам, че базите данни 12C не създават автоматично дялове при вмъкване? или греша?