16.20 - 引数のタイプとルール - Teradata Vantage NewSQL Engine

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

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

ARRAYコンストラクタに渡す式は、array_name配列の要素型のデータ型に暗黙的に変換できるものである必要があります。CHARからTIMESTAMPへ、またはTIMESTAMPからDATEへのキャストなど、既存の暗黙のCAST機能は、既存のARRAYコンストラクタ式ではサポートしていません。

ARRAYコンストラクタ式には、ゼロ個以上の引数を使用できます。引数がない場合、ARRAYコンストラクタは空のARRAYタイプ値を初期化し、そのARRAYデータ型がDEFAULT NULL句を指定せずに作成された場合には、配列のすべての構成要素の値を未初期化状態に設定します。そのARRAYデータ型がDEFAULT NULL句を指定して作成された場合は、ARRAYコンストラクタが配列のすべての構成要素の値をnullに初期化します。未初期化状態の配列の構成要素へのアクセスを試みると、エラーが返されるので注意してください。

ARRAYコンストラクタ式に対しては、最大n個の引数を渡すことができます。このとき、nは、ARRAYデータ型の宣言サイズです。1次元ARRAYタイプの場合、ARRAYコンストラクタは配列の構成要素の先頭から、引数が渡される順に引数を入れていきます。多次元ARRAYタイプの場合、ARRAYコンストラクタ式に引数を行優先順で渡します。これは、多次元配列の構成要素が行優先順で埋め込まれるためです。

引数の数が配列の構成要素数より少ない場合、引数の値が指定されていない残りの構成要素は、初期化されていない状態に設定されます。ただし、DEFAULT NULL句を使用してARRAYデータ型を作成した場合、そのような構成要素はnullに設定されます。

UDTのコンストラクタ メソッドは、128個を超える引数は受け付けませんが、この制限はARRAYデータ型には適用されません。ARRAYコンストラクタに指定できる引数の数は、ARRAYタイプに定義できる構成要素の最大数または2559個のどちらか小さい方に制限されます。

配列の要素型が可変長型で、要素の初期化のため渡された値が要素型の最大サイズより大きい場合、Teradata Databaseは要素型の最大サイズになるように渡された値を自動的に切り捨てます。この切り捨て動作は、Teradataセッション モードのトランザクション処理でのみ発生します。ANSIセッション モードでは、Teradata Databaseは渡された値の切り捨ては行なわず、代わりにエラーを返します。この動作は、DISTINCT型UDTおよびSTRUCTURED型UDTの動作と同じです。