1次元(1-D)のARRAYデータ型は、ANSI SQL:2011規格に一部準拠しています。1次元(1-D)のARRAY型がANSI規格に適合していない部分は、次のとおりです。
- CREATE TYPE文を使用して、最初にARRAYタイプを作成してから、そのARRAYタイプを使用する必要があります。これは、ANSIの要件ではありません。
- TeradataのARRAYデータ型は、ユーザー定義型(UDT)です。これはANSI規格と異なります。ANSI規格では、ARRAYデータ型がUDTと見なされることはありません。
- TeradataのARRAY値コンストラクタの構文は、UDTコンストラクタの構文に基づいています。これは、ANSIの構文とは異なります。
- ANSI形式での2つの配列の比較(A=B)は、サポートされていません。ただし、2つの配列の個別の構成要素についての比較(A[2]=B[2])は、サポートされています。ARRAY_COMPAREシステム関数を使用すると、2つの配列の構成要素全体が等しいかどうかの比較を実行できます。
- Vantageでは、ARRAYタイプに対するビルトインのCAST操作を提供しています。これにより、VARCHARからARRAYへのキャストや、ARRAYからVARCHARへのキャストを実行できます。これは、ANSIのARRAY CAST機能とは異なります。ANSIでは、変換元の配列内のすべての構成要素が、変換先の要素型にキャストされます。
- 連結演算子では両方のオペランドを同一のARRAYタイプにする必要があり、連結演算のターゲット タイプも同じタイプにする必要があります。これはANSI規格と異なります。ANSI規格では、1-D ARRAYの連結によるターゲット データ型は、長さとして両方のオペランドの長さの合計が定義される新しい1-D ARRAYタイプになります。
- ARRAY_AGGシステム集約関数には、ターゲットARRAYタイプのARRAY式を格納する追加のパラメータがあります。このパラメータにより、同じ構成要素のデータ型を保持する複数のARRAYタイプを定義できるようになり、多義性が排除されます。
- クエリーによるARRAYコンストラクタは、サポートされていません。ARRAY_AGGシステム集約関数を使用すると、この種類の操作を実行できるようになります。
多次元(n-D) ARRAYデータ型は、ANSI SQL規格に対するTeradataの拡張機能です。Vantageでは、1-D ARRAY型に対するANSI SQL:2011の構文を拡張して、複数の次元を使用できるようにしています。
1-Dとn-DのARRAYデータ型は、どちらもANSI SQL:2011規格に準拠した方法で、それらの構成要素の値を格納およびマージします。