以下は、1つのパラメータを持ち、n次元ARRAYデータ型を使用して定義されたSTRUCTURED型UDTのUDMの作成例です。同じ例が、SQLパラメータ形式とTD_GENERALパラメータ形式の両方をもつDDLと関数プロトタイプを示すために、例: 多次元ARRAY型およびTD_GENERALパラメータ型を使用したインスタンス メソッドの作成にも繰り返されています。
まず、STRUCTURED型measures_udtを作成します。
CREATE TYPE measures_udt AS ( amplitud INTEGER, phase INTEGER, frequency INTEGER) INSTANCE METHOD update_measures ( a1 source_ary) … ;
次に、多次元ARRAY型source_aryを作成します。
CREATE TYPE source_ary AS INTEGER ARRAY [1:5][1:7][1:20];
最後に、1つの多次元ARRAYパラメータを持つ、measures_udtタイプのインスタンス メソッドupdate_measuresを作成します。
CREATE INSTANCE METHOD update_measures (
a1 source_ary)
RETURNS INTEGER
FOR measures_udt
NO SQL
PARAMETER STYLE SQL
DETERMINISTIC
LANGUAGE C
EXTERNAL NAME 'CS!update_measures!update_measures.c!F!update_measures';
void update_measures (
UDT_HANDLE *thisUdt,
ARRAY_HANDLE *aryval,
INTEGER *result,
int *indicator_this,
int *indicator_aryval,
int *indicator_result,
char sqlstate[6],
SQL_TEXT extname[129],
SQL_TEXT specific_name[129],
SQL_TEXT error_message[257])
{
/* body function */
}