17.00 - 17.05 - 1次元ARRAYおよびVARRAY UDT用のシステム生成デフォルト機能 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-170K-JPN
Language
日本語 (日本)

1次元ARRAY/VARRAY UDTを作成すると、Teradata Databaseは以下の追加のUDT関連機能を自動的に生成します。

1次元の型変換

これは、1次元ARRAY/VARRAY型のデータ変換に関連付けられたfromsql機能およびtosql機能です。1次元ARRAY/VARRAY値は、VARCHAR(length)値との間で変換されます。ここで、lengthは、1次元ARRAY/VARRAYで定義された構成要素の型および要素の合計数によって異なります。

変換後の出力の形式設定については、ARRAY/VARRAY型の入力/出力文字列のデータ変換を参照してください。

コンストラクタ関数とコンストラクタ メソッド

Teradata Databaseは、作成される1次元ARRAY型またはVARRAY型ごとに、デフォルトのコンストラクタ関数および追加のコンストラクタ メソッドを自動生成します。

デフォルトのコンストラクタ関数は、どのパラメータも取らず、1次元ARRAY/VARRAY型のインスタンスを割り振ります。

Teradata Databaseは、1次元ARRAY/VARRAYのすべての要素を未初期化状態に設定します。これは、要素をnullに設定することとは異なります。

ARRAY/VARRAYから任意の要素にアクセスがあった場合、Teradata Databaseは、リクエスト側にエラーを返します。

1次元ARRAY/VARRAY型がDEFAULT NULLオプションを指定せずに作成されている場合にのみ、Teradata Databaseは、すべての要素を未初期化状態に設定します。

コンストラクタ メソッドは、1次元ARRAY/VARRAYデータ型の宣言済みサイズによって定義されているパラメータ数を最大とする1つ以上のパラメータを取り、1次元ARRAY/VARRAYの各要素を、自身に渡される対応する値を使用して初期化します。

Teradata Databaseは、1次元ARRAY/VARRAYの要素値を順次保管するため、パラメータをコンストラクタに順番に渡す必要があります。コンストラクタは、1次元ARRAY/VARRAYの要素を、最初の要素から始めて、左から右に初期化します。

通常、コンストラクタ メソッドには128パラメータの上限が存在しますが、1次元ARRAY/VARRAYコンストラクタ メソッドで指定できるパラメータの数は、1次元ARRAY/VARRAY型で定義された要素の最大数によってのみ制限されます。

1次元ARRAY/VARRAYに合計n個の要素が存在する場合、n個より多いパラメータをコンストラクタに渡すと、Teradata Databaseはリクエスト側にエラーを返します。

1次元のARRAY/VARRAY型順序付け

Teradata Databaseは、新たに作成された1次元ARRAY/VARRAY型用に、非常に基本的な順序付け機能を提供します。

Teradata Databaseでは、この順序付け機能が提供されているため、ハッシュに関する問題が回避され、1次元ARRAY/VARRAY型の列をSETテーブルで使用できます。

1次元ARRAY/VARRAY値のリレーショナルな比較はできません。

1次元ARRAYデータに対してリレーショナル比較演算子を使用することはできません。また、以下のSQL DML句のいずれかで1次元ARRAY/VARRAY列を指定することもできません:
  • INTERSECT集合演算子
  • MINUS集合演算子
  • UNION集合演算子
  • DISTINCT演算子
  • WHERE句
  • ORDER BY句
  • GROUP BY句
  • HAVING句

1次元のARRAY/VARRAY型キャスト

Teradata Databaseは、1次元ARRAY/VARRAY型にキャスト機能を提供します。システムは、すべての1次元ARRAY/VARRAY型に、自動生成された2つのキャストを提供します。
  • VARCHARからARRAY/VARRAYへ
  • ARRAY/VARRAYからVARCHARへ

VARCHAR文字列の形式は、ソース値とターゲット値の両方とも、tosqlデータ変換およびfromsqlデータ変換の形式と同じです。これらの文字列の形式の詳細については、ARRAY/VARRAY型の入力/出力文字列のデータ変換を参照してください。

独自のUDFを作成して、2つの1次元ARRAY/VARRAY型の要素間でキャスト操作を実行することもできます。