Sloupec tabulky musí mít stejný datový typ jako sloupec clusteru. Ve vašem příkladu to funguje dobře:
create table test1 (
id int
) cluster abc_clus(id);
Table TEST1 created.
I složený klíč funguje, pokud datový typ odpovídá:
create table test2 (
a int,
b int,
primary key(a, b)
) cluster abc_clus(a);
Table TEST2 created.
Pokud se však datový typ liší, zobrazí se chybová zpráva:
create table test3 (
vc varchar2(7)
) cluster abc_clus(vc);
ORA-01753: column definition incompatible with clustered column definition
A datový typ musí být naprosto stejný, dokonce i int
a number
nejsou kompatibilní:
create table test4 (
n NUMBER
) cluster abc_clus(n);
ORA-01753: column definition incompatible with clustered column definition
EDIT:
Můžete dokonce mít složené clustery:
vytvořit cluster idc_clus (i int,d datum);
vytvořit index idc_clus_idx na clusteru idc_clus;
vytvořit tabulku test5 (i int,d datum,primární klíč (i,d)) cluster idc_clus(i, d);