ルール - 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
ARRAY関数でオプションのscope_referenceパラメータが指定されているときは、次のルールが適用されます。
  • scope_referenceには、2つの整数値または2つのArrayVec値を渡せます。 1次元ARRAY引数を使用してARRAY関数を呼び出す場合、scope_referenceには整数とArrayVecを組み合わせた値を渡せます。 例えば、scope_referenceは<integer_value, ArrayVec_value>または<ArrayVec_value, integer_value>にすることができます。
  • scope_referenceの範囲の上限または下限を指定するのにArrayVecインスタンスを使用する場合、次の操作は許されません。
    • 配列引数の境界を定義するために必要なArrayVec構成要素のいずれかにNULLを渡す。
    • 配列引数の境界を定義するには不十分な数の構成要素をArrayVecに渡す。
    • 配列引数の境界を定義するには多すぎる数の構成要素をArrayVecに渡す。
  • RETURNS NULL ON NULL INPUT句を定義するすべてのARRAY関数については、scope_referenceを定義するオプションのパラメータの1つがNULLとして渡されると、結果値としてNULLが返されます。
  • scope_referenceを指定して呼び出されるARRAY関数は、その適用範囲が明示的に定義されているとみなされるので、初期化されていない構成要素のいずれかが、ARRAY入力引数のいずれかでscope_referenceの範囲内にあれば、そのような関数はエラーを返します。CARDINALITY関数は、このルールの例外となります。これは、初期化されていない構成要素が含まれている、明示的な適用範囲は、この関数の入力として受け入れられないためです。

アプリケーションを2つの配列の間で操作する必要がある場合、作成時にDEFAULT NULL句を使用してそうした配列を作成することを考慮します。こうすると、配列のすべての構成要素が初期化されるので、システムから無効な構成要素の参照によるエラーを回避できます。

ARRAY関数でオプションのscope_referenceパラメータが指定されていないときは、次のルールが適用されます。

  • scope_referenceを指定せずにARRAY関数を呼び出すと、使用されるデフォルトの適用範囲は入力ARRAY引数で初期化されている構成要素の数になります。ARRAY関数が2つのARRAY引数を受け付け、初期化された構成要素の数が2つの配列で異なっている場合、エラーが返されます。
  • ARRAY関数がARRAY値を返すとき、結果のARRAY値に含まれる初期化された構成要素の数は、入力ARRAY引数の構成要素の数と同じになります。