テーブル列は、クラスター列と同じデータ型である必要があります。あなたの例では、これはうまく機能します:
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にインデックスidc_clus_idxを作成します;
テーブルtest5(i int、d date、primary key(i、d))cluster idc_clus(i、d);
を作成します。