この例のセットは、プライマリ インデックスまたはセカンダリ インデックスまたはその両方にUDT列を指定するテーブルを作成する方法を示します。
最初に、サンプルの列に使用するUDTを定義します。
UDT tbl_integerは、INTEGERデータ型に基づくDISTINCT型UDTです。
CREATE TYPE tbl_integer AS INTEGER FINAL;
UDT tbl_char50も、CHARACTERデータ型に基づくDISTINCT型UDTです。
CREATE TYPE tbl_char50 AS CHARACTER(50) FINAL;
EXSP_STRUCTURE_LOBは、INTEGERデータ型およびCLOBデータ型に基づくSTRUCTURED型UDTです。
CREATE TYPE EXSP_STRUCTURE_LOB AS ( age INTEGER, c1 CLOB(512), c2 CLOB(512), cnt INTEGER, c3 CLOB(512)) NOT FINAL CONSTRUCTOR METHOD exsp_structure_lob( file1 VARCHAR(20), file2 VARCHAR(20), file3 VARCHAR(20)) RETURNS exsp_structure_lob SPECIFIC lobconstructor SELF AS RESULT NO SQL PARAMETER STYLE TD_GENERAL DETERMINISTIC LANGUAGE C;
例の最初のテーブルは、そのUPIをDISTINCT型UDTの列idに定義します。
CREATE TABLE table_1 ( id tbl_integer, emp_name tbl_char50) UNIQUE PRIMARY INDEX(id);
例の2番目のテーブルは、そのNUPIをDISTINCT型UDTの列idに定義します。
CREATE TABLE table_2 ( id tbl_integer, emp_name tbl_char50) PRIMARY INDEX(id);
例の3番目のテーブルは、USIをDISTINCT型UDTの列emp_nameに定義します。
CREATE TABLE table_3 ( id tbl_integer, emp_name tbl_char50) UNIQUE INDEX(emp_name);
例の4番目のテーブルは、NUSIをDISTINCT型UDTの列emp_nameに定義します。
CREATE TABLE table_4 ( id tbl_integer, emp_name tbl_char50, start_date DATE) INDEX(emp_name);
例の5番目のテーブルは、複合NUSIをDISTINCT型UDTの列emp_nameとDATEの列start_dateに定義します。
CREATE TABLE table_5 ( id tbl_integer, emp_name tbl_char50, start_date DATE) INDEX(emp_name, start_date);