VARIANT_TYPE UDTパラメータを使用するUDFの記述 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

動的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を作成する手間を省き(または減らし)、関数名のオーバーロードを処理する例については、関数のオーバーロードを参照してください。