パッケージ化に使用したり、異なるデータ型の異なる数のパラメータを単一のUDF入力パラメータとしてパッケージ化してUDFに渡すために使用できる入力パラメータのデータタイプです。
構文
parameter_name VARIANT_TYPE
- parameter_name
- UDFで宣言された入力パラメータの名前。
ANSI準拠
VARIANT_TYPEは、ANSI SQL規格に対するTeradataの拡張機能です。
説明
Teradata Databaseは、動的UDT(事前に割当てられたVARIANT_TYPEというUDTタイプ名のSTRUCTURED型UDT)をサポートしています。この動的UDTの、STRUCTURED型の属性の構成は、実行時に決定されます。
VARIANT_TYPE UDTは、UDF入力パラメータのデータ型としてのみ使用できます。UDF入力パラメータをVARIANT_TYPE宣言する場合、そのパラメータを使用して、異なるデータ型の異なる数のパラメータをUDFに渡すことができます。
追加のパラメータはパッケージ化され、単一のSTRUCTURED型UDTとしてUDFに渡されます。パラメータの数とパラメータのデータ型は実行時に決定されます。このため、ルーチンを呼び出すたびにパラメータの構成を変更できます。
VARIANT_TYPE UDTのインスタンスを宣言し、UDTの実行時の構成を定義するには、NEW VARIANT_TYPE式を使用します。詳細は、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>の「NEW VARIANT_TYPE」を参照してください。VARIANT_TYPEデータ型にするためのUDF入力パラメータの宣言の詳細は、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「CREATE/REPLACE FUNCTION」を参照してください。
VARIANT_TYPE UDTのハイレベルな機能
UDTの分類 | STRUCTURED型UDT |
UDTタイプ名 | Variant_Type |
付随するメソッド(UDM) | なし |
順序付け機能 | 完全マップ順序付けを実装します。順序付けルーチンは、VARIANT_TYPE UDTの最初の属性の値を戻します。 VARIANT_TYPE UDTの最初の属性を、次のいずれかにすることはできません。LOB、UDT、またはLOB-UDT。
|
データ変換機能 | なし VARIANT_TYPE UDTはインポートもエクスポートもできません。このデータ型は、データ型が出力として呼び出し側に戻される結果になるSQL文では使用できません。そうでないと、UDTが定義されていないことを通知するSQLエラーが返されます。 |
キャスト機能 | なし |
サポートされているパラメータの最大数
UDFは最大128個のパラメータをサポートします。さらに、各VARIANT_TYPE入力パラメータには最大128個のパラメータを納めることが可能で、最大8個のUDF入力パラメータをVARIANT_TYPEデータ型宣言することができます。これは、サポートするUDF入力パラメータの数を、UDFごとに128から120 + (8 X 128) = 1144入力パラメータに増やします。
制限
- VARIANT_TYPE UDTは、UDFの入力パラメータのデータ型として指定できます。これらをUDFの結果パラメータや、その他の目的のデータ型として使用することはできません。
- VARIANT_TYPEデータ型が使用できるのは、CまたはC++で記述されたUDFのみです。SQL UDFまたはJavaで記述されたUDFでは使用できません。
- STRUCTURED型UDTに適用される制限は、すべてVARIANT_TYPE UDTにも適用されます。
例: VARIANT_TYPEデータ型
この例では、VARIANT_TYPEデータ型として宣言されたparameter_1という名前の入力パラメータがある、ユーザー定義の集約関数を示しています。
CREATE TYPE INTEGERUDT AS INTEGER FINAL; CREATE FUNCTION udf_agch002002dynudt (parameter_1 VARIANT_TYPE) RETURNS INTEGERUDT CLASS AGGREGATE (4) LANGUAGE C NO SQL EXTERNAL NAME 'CS!udf_agch002002dynudt!udf_agch002002dynudt.c' PARAMETER STYLE SQL;
関連トピック
詳細情報 | 参照先 |
---|---|
UDFのVARIANT_TYPE入力パラメータの宣言 | <Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「CREATE/REPLACE FUNCTION」 |
VARIANT_TYPE UDTのインスタンスの宣言と、UDTの実行時の構成の定義 | <Teradata Vantage™ - SQL関数、式、および述部、B035-1145>の「NEW VARIANT_TYPE」 |
VARIANT_TYPE入力パラメータを使用するUDFの記述 | Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147。 |