配列コンストラクター
配列コンストラクターは、通常配列を戻します。 配列コンストラクターは、式のリストまたは全選択によって指定されます。
許可
SQL ステートメント内で配列コンストラクターを参照するのに、特別な許可は必要ありません。 ただし、ステートメントの実行を成功させるには、そのステートメントの他の許可要件をすべて満たしている必要があります。
- 全選択
- 1 つの列を返す全選択。 列のデータ・タイプは、配列エレメントのデータ・タイプとして CREATE TYPE (配列) ステートメントで指定できるデータ・タイプでなければなりません。 この全選択によって戻される値が、配列のエレメントです。 配列のカーディナリティーは、全選択によって戻される行数と同じです。 全選択で ORDER BY 節を使用すると、配列のエレメント間の順序を指定できます。 これを行わない場合、順序は未定義です。 結果として生成される配列のエレメントのデータ・タイプは、全選択の結果列のデータ・タイプと同じです。
- element-expression
- 配列内のエレメントの値を定義する式。 式は、配列エレメントのデータ・タイプとして CREATE TYPE (配列) ステートメントで指定できるデータ・タイプの値を戻す必要があります。 配列のカーディナリティーは、エレメント式の数と同じです。 最初のエレメント式は、配列添字 1 を持つ配列エレメントに割り当てられます。 2 番目のエレメント式は、配列添字 2 を持つ配列エレメントに割り当てられ、以下同様に続きます。 エレメントの式のデータ・タイプはすべて互換性がなければなりません。 結果として得られる配列の要素のデータ型は、「結果データ型のルール」で説明されているルールに基づいて決定されます。
- ヌル
- NULL 値を指定します。
大括弧の中に値を指定しない場合の結果は、空の配列です。
配列コンストラクターをインライン SQL 関数に指定することはできません。配列コンストラクターは、以下の特定のコンテキストでのみ指定できます。
- SET assignment-statement ステートメントまたは SQL PL assignment-statement ステートメントのソース値として
- ユーザー定義のスカラー関数の RETURN ステートメントで返される値として
配列コンストラクターを使用して連想配列を構成することはできません。 連想配列は、個々の配列エレメントに値を代入することによってのみ構成できます。
例
例 1: 配列変数 RECENT_CALLS の配列タイプが PHONENUMBERS であるとします。 固定の番号の配列を RECENT_CALLS に代入します。
SET RECENT_CALLS = ARRAY[9055553907, 4165554213, 4085553678];例 2: 配列変数 DEPT_PHONES の配列タイプが PHONENUMBERS であるとします。 DEPARTMENT_INFO 表から取得した電話番号配列を DEPT_PHONES に代入します。
SET DEPT_PHONES =
ARRAY[SELECT DECIMAL(AREA_CODE CONCAT '555' CONCAT EXTENSION,16)
FROM DEPARTMENT_INFO
WHERE DEPTID = 624];