Столбец таблицы должен иметь тот же тип данных, что и столбец кластера. В вашем примере это работает нормально:
create table test1 (
id int
) cluster abc_clus(id);
Table TEST1 created.
Даже составной ключ работает, если тип данных соответствует:
create table test2 (
a int,
b int,
primary key(a, b)
) cluster abc_clus(a);
Table TEST2 created.
Однако, если тип данных отличается, вы получите сообщение об ошибке :
create table test3 (
vc varchar2(7)
) cluster abc_clus(vc);
ORA-01753: column definition incompatible with clustered column definition
И тип данных должен быть точно таким же, даже int
и number
несовместимы:
create table test4 (
n NUMBER
) cluster abc_clus(n);
ORA-01753: column definition incompatible with clustered column definition
РЕДАКТИРОВАТЬ:
Вы может даже иметь составные кластеры:
создать кластер idc_clus (i int, d date);
создать индекс idc_clus_idx для кластера idc_clus;
создать таблицу test5 (i int, d дата, первичный ключ (i, d)) кластер idc_clus (i, d);