次の例は、ハッシュ インデックスに使用するUDT列をcolumn_name_list1、column_name_list2、およびcolumn_name_list3に指定する方法を示します。
最初に、サンプルの列に使用するUDTを定義します。
TBL_INTEGERはINTEGERデータ型に基づくDISTINCT型UDTです。
CREATE TYPE TBL_INTEGER AS INTEGER FINAL;
TBL_CHAR50もDISTINCT型UDTで、CHARACTERデータ型に基づきます。
CREATE TYPE TBL_CHAR50 AS CHARACTER(50) FINAL;
次のテーブルを定義したとします。
CREATE TABLE t1_hash_index ( id TBL_INTEGER, emp_name TBL_CHAR50) PRIMARY INDEX(id);
最初のハッシュ インデックス定義は、3つの列リストすべてにUDT列emp_nameを指定します。
CREATE HASH INDEX tb_index_1 (emp_name) ON t1_hashindex BY (emp_name) ORDER BY HASH (emp_name);
2番目のハッシュ インデックス定義は、column_name_1リストにUDT列emp_nameを指定します。
この例は、BY句もORDER BY句も定義せずに有効なハッシュ インデックスを作成する方法と、ハッシュ インデックスを定義した基本テーブルのプライマリ インデックスがUDT列に作成されている場合に基本テーブルのプライマリ インデックスのハッシュによってハッシュ インデックスの行を分散する方法を示します。
CREATE HASH INDEX tb_index_2 (emp_name) ON t1_hashindex;