以下の例は、事前定義データ型で定義されたstreetとzipの2つの属性を持ち、addressという名前のSTRUCTURED型UDTを作成します。このタイプは、1つのコンストラクタ メソッド(address (VARCHAR(20), CHAR(5))と3つのインスタンス メソッド(city()、state()、およびin_state())とによっても定義されます。
この例では、インスタンス メソッドcity()とin_state(CHAR(2))にはSPECIFICメソッド名が指定されないため、システムはSYSUDTLIBデータベースのインスタンス メソッドに以下のTVMNameI SPECIFIC名を自動生成および登録します。
- city()メソッドの代わりにADDRESS_CITY_R
- in_state(CHAR(2))メソッドの代わりにADDRESS_IN_STATE_R
CREATE TYPE address AS ( street VARCHAR(20), zip CHARACTER(5) ) NOT FINAL CONSTRUCTOR METHOD address( VARCHAR(20), CHARACTER(5) ) RETURNS address SPECIFIC address_constructor_1 SELF AS RESULT LANGUAGE C PARAMETER STYLE SQL DETERMINISTIC NO SQL, INSTANCE METHOD city() RETURNS VARCHAR(20) LANGUAGE C PARAMETER STYLE SQL DETERMINISTIC NO SQL, METHOD state() RETURNS CHARACTER(2) SPECIFIC address_state RETURNS NULL ON NULL INPUT LANGUAGE C PARAMETER STYLE SQL DETERMINISTIC NO SQL, METHOD in_state(CHARACTER(2)) RETURNS CHARACTER(1) LANGUAGE C PARAMETER STYLE SQL DETERMINISTIC NO SQL;