Kolumna tabeli musi mieć ten sam typ danych co kolumna klastra. W Twoim przykładzie działa to dobrze:
create table test1 (
id int
) cluster abc_clus(id);
Table TEST1 created.
Nawet klucz złożony działa, jeśli typ danych jest zgodny:
create table test2 (
a int,
b int,
primary key(a, b)
) cluster abc_clus(a);
Table TEST2 created.
Jeśli jednak typ danych jest inny, pojawi się komunikat o błędzie:
create table test3 (
vc varchar2(7)
) cluster abc_clus(vc);
ORA-01753: column definition incompatible with clustered column definition
A typ danych musi być dokładnie taki sam, nawet int
i number
nie są kompatybilne:
create table test4 (
n NUMBER
) cluster abc_clus(n);
ORA-01753: column definition incompatible with clustered column definition
EDYCJA:
Możesz nawet mieć klastry złożone:
utwórz klaster idc_clus (i int,d data);
utwórz indeks idc_clus_idx w klastrze idc_clus;
utwórz tabelę test5 (i int,d data,klucz podstawowy (i,d)) klaster idc_clus(i, d);