ANSI準拠 - 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

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つの配列の構成要素全体が等しいかどうかの比較を実行できます。
  • Teradata Databaseでは、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の拡張機能です。Teradata Databaseでは、1-D ARRAY型に対するANSI SQL:2011の構文を拡張して、複数の次元を使用できるようにしています。

1-Dとn-DのARRAYデータ型は、どちらもANSI SQL:2011規格に準拠した方法で、それらの構成要素の値を格納およびマージします。