ARRAY構成要素の参照をSET句で使用する方法 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/zsn1556242031050.ditamap
dita:ditavalPath
ja-JP/zsn1556242031050.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

UPDATE文やMERGE文のSET句のターゲット値としてARRAY構成要素の参照を使用すると、ARRAY内の個々の構成要素の値を設定できます。

1-D配列の中ほどの構成要素に特定の値を設定したときに、それより前の構成要素が初期化されていない場合には、それらの構成要素が自動的にNULLに初期化されます。n-D ARRAYタイプの場合、配列の中ほどの構成要素を特定の値に設定したときに、それより前(行優先順で全次元)の構成要素が初期化されていない場合には、それらの構成要素が自動的にNULLに初期化されます。

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

さらに、CHARからTIMESTAMPへ、またはTIMESTAMPからDATEへのキャストなど、既存の暗黙のCAST機能は、既存のARRAY構成要素の参照ではサポートしていません。SET句のソースのデータ型は、配列の構成要素のデータ型と同じでなければなりません。SET句のターゲットがARRAY構成要素の参照の場合、配列の構成要素のタイプとは異なるデータ型を持つSET句のソース値に対しては、明示的なCASTを使用する必要があります。