UDFでは、ARRAY型の引数および戻り値を定義し、それらをハンドルで渡すことができます。
ここでは、ARRAY型を使用するスカラー関数の宣言方法の例を示します。
/***** C source file name: MyArrayUDF.c *****/ #define SQL_TEXT Latin_Text #include <sqltypes_td.h> void MyArrayUDF( ARRAY_HANDLE *ary_handle, VARCHAR_LATIN *result, int *indicator_ary, int *indicator_result, char sqlstate[6], SQL_TEXT extname[129], SQL_TEXT specific_name[129], SQL_TEXT error_message[257]) { ... }
次の文では、CHAR型の構成要素の型を保持する、phonenumbers_aryという1-DのARRAYデータ型を作成します。
/* Oracle-compatible syntax: */ CREATE TYPE phonenumbers_ary AS VARRAY(5) OF CHAR(10); /* Teradata syntax: */ CREATE TYPE phonenumbers_ary AS CHAR(10) ARRAY[5];
MyArrayUDF関数の入力パラメータの型としてphonenumbers_aryを使用する場合、それに対応するCREATE FUNCTION文は次のようになります。
CREATE FUNCTION MyArrayUDF( a1 phonenumbers_ary ) RETURNS VARCHAR(100) NO SQL PARAMETER STYLE SQL DETERMINISTIC LANGUAGE C EXTERNAL NAME 'CS!MyArrayUDF!MyArrayUDF.c!F!MyArrayUDF';
ARRAY_HANDLE Cデータ型の詳細については、Cデータ型を参照してください。