「配列データ構造」は、DIM キーワードを使用して定義されるデータ構造です。配列データ構造は、
複数オカレンス・データ構造と似ていますが、指標は配列の場合と同様に明示的に指定されます。
「キー付き配列データ構造」とは、1 つのサブフィールドが検索キーまたはソート・キーとして識別された配列データ構造です。
配列データ構造には (*) という指標が付き、その後にキー・サブフィールドの指定が続きます。
例えば、配列データ構造 FAMILIES にスカラー・サブフィールド NAME と配列サブフィールド CHILDREN があるとします。
NAME をキーとする配列データ構造として FAMILIES データ構造を使用するには、FAMILIES(*).NAME と指定します。
CHILDREN の最初の要素をキーとして使用するには、FAMILIES(*).CHILDREN(1) と指定します。
注: - キーワード DIM は QUALIFIED として定義されるデータ構造に使用できます。
- キーワード DIM をデータ構造または LIKEDS サブフィールドにコーディングする場合、配列キーワード CTDATA、FROMFILE、および TOFILE は使用できません。
さらに、次のデータ構造キーワードは配列データ構造では使用できません。
- LIKEDS(Y) を使用して定義されているデータ構造 X の場合、データ構造 Y がキーワード DIM で定義されると、データ構造 X は
配列データ構造として定義されません。
- X が配列データ構造 DS のサブフィールドである場合、修飾名で X が参照されるときには、配列指標を指定する必要があります。
さらに、配列指標は、キー付き配列データ構造のコンテキスト内を除いて、* でない場合があります。
完全修飾名の式においては、配列指標は一番右の名前についてのみ省略 (または * を指定) することができます。
- 配列データ構造は、SORTA (配列の分類) 命令コードを使用してソートできます。
配列は、サブフィールドの 1 つをキーとして使用してソートされます。
- 配列データ構造は、
%LOOKUP 組み込み関数を使用して検索できます。
配列は、サブフィールドの 1 つをキーとして使用して検索されます。
- 以下に、無効なキー付き配列データ構造式を使用したステートメントの例をいくつか示します。
TEAMS という配列データ構造があり、スカラー・サブフィールド MANAGER とデータ構造サブフィールド EMPS が含まれているとします。
- TEAMS は配列データ構造であるため、以下のステートメントは無効です。
非配列キー・サブフィールドが指定されなければなりません。
SORTA TEAMS;
SORTA TEAMS(*);
- TEAMS(1).EMPS は配列データ構造であるため、以下のステートメントは無効です。
非配列キー・サブフィールドが指定されなければなりません。
SORTA TEAMS(1).EMPS;
SORTA TEAMS(1).EMPS(*);
- TEAMS(*).EMPS(*) では、2 つの異なるソート対象配列が指定されているため、このステートメントは無効です。
(*) は 1 つしか指定できません。
SORTA TEAMS(*).EMPS(*).NAME;
- 修飾名のすべての配列に指標が必要なため、以下のステートメントは無効です。
TEAMS と EMPS の両方のサブフィールドに指標が必要です。
一方には、(*) という指標が付いていなければなりません。
SORTA TEAMS(*).EMPS.NAME;
SORTA TEAMS.EMPS(*).NAME;
- 少なくとも 1 つの配列に (*) という指標が付かなければならないため、以下のステートメントは無効です。
TEAMS(1).EMPS(1).NAME はスカラー値です。
SORTA TEAMS(1).EMPS(1).NAME;