動的UDTとは、VARIANT_TYPEまたはTD_ANYTYPEのタイプ名を持つSTRUCTURED型UDTのことです。CまたはC++で記述した外部ルーチンのスカラーUDFおよび集約UDFは記述できますが、Javaで記述した外部ルーチンのUDFは記述できません。STRUCTURED型UDTに対して有効なすべてのFNCライブラリ関数は、動的UDTにも有効です。これらのFNCライブラリ関数に属性名が必要な場合は、提供された別名、または対応する属性名として提供された列名を指定する必要があります。詳細は、<Teradata Vantage™- SQL外部ルーチン プログラミング、B035-1147>を参照してください。UDTで宣言できるVARIANT_TYPE入力パラメータの最大数は、8個です。
動的結果行指定のあるUDFの記述は、STRUCTURED型UDTを持つ同じルーチンと同様に記述します。これは、動的UDTパラメータはSTRUCTURED型のパラメータであり、STRUCTURED型と同じ方法でUDT_HANDLEとして関数に渡されるためです。
関数定義のためのCREATE FUNCTIONリクエストの用例を以下に示します。
CREATE FUNCTION udfwithstructured (…) RETURNS INTEGER LANGUAGE C NO SQL PARAMETER STYLE TD_GENERAL EXTERNAL NAME 'CS!UdfWithStructured!td_udf/udfwithstructured.c';
動的UDTを使用するUDFをサポートするためのCおよびC++ルーチンの記述方法については、<Teradata Vantage™- SQL外部ルーチン プログラミング、B035-1147>を参照してください。動的UDTを使用して複数のUDFを作成する手間を省き(または減らし)、関数名のオーバーロードを処理する例については、関数のオーバーロードを参照してください。