配列データ構造

「配列データ構造」は、DIM キーワードを使用して定義されるデータ構造です。配列データ構造は、 複数オカレンス・データ構造と似ていますが、指標は配列の場合と同様に明示的に指定されます。

「キー付き配列データ構造」とは、1 つのサブフィールドが検索キーまたはソート・キーとして識別された配列データ構造です。 配列データ構造には (*) という指標が付き、その後にキー・サブフィールドの指定が続きます。 例えば、配列データ構造 FAMILIES にスカラー・サブフィールド NAME と配列サブフィールド CHILDREN があるとします。 NAME をキーとする配列データ構造として FAMILIES データ構造を使用するには、FAMILIES(*).NAME と指定します。 CHILDREN の最初の要素をキーとして使用するには、FAMILIES(*).CHILDREN(1) と指定します。

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