16.20 - VARIANT_TYPEデータ型 - Teradata Vantage NewSQL Engine

Teradata Vantage™ データ タイプおよびリテラル

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN

目的

パッケージ化に使用したり、異なるデータ型の異なる数のパラメータを単一のUDF入力パラメータとしてパッケージ化してUDFに渡すために使用できる入力パラメータのデータタイプです。

構文



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.