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引数の構成要素の数と同じになります。