A coluna da tabela precisa ser do mesmo tipo de dados que a coluna do cluster. No seu exemplo, isso funciona bem:
create table test1 (
id int
) cluster abc_clus(id);
Table TEST1 created.
Até mesmo uma chave composta funciona, se o tipo de dados corresponder:
create table test2 (
a int,
b int,
primary key(a, b)
) cluster abc_clus(a);
Table TEST2 created.
No entanto, se o tipo de dados for diferente, você receberá sua mensagem de erro:
create table test3 (
vc varchar2(7)
) cluster abc_clus(vc);
ORA-01753: column definition incompatible with clustered column definition
E o tipo de dados tem que ser exatamente o mesmo, mesmo
int
e number
não são compatíveis:create table test4 (
n NUMBER
) cluster abc_clus(n);
ORA-01753: column definition incompatible with clustered column definition
EDITAR:
Você pode até ter clusters compostos:
criar cluster idc_clus (i int,d data);
crie o índice idc_clus_idx no cluster idc_clus;
criar tabela test5 (i int,d data,chave primária (i,d)) cluster idc_clus(i,d);