VARIANT_TYPEデータ型 - Advanced SQL Engine - Teradata Database

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

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/zsn1556242031050.ditamap
dita:ditavalPath
ja-JP/zsn1556242031050.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

パッケージ化に使用したり、異なるデータ型の異なる数のパラメータを単一の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