1. MERGE

MERGEステートメントは、ソートされたファイルをマージします。各ファイルのレコードは、キーに従ってソートされている必要があります。

figure pd merge
Figure 1. MERGEステートメントの形式

以下は、ステートメントの各設定項目についての説明です。

  • file-name-1

    SD項目に記述された名前です。

  • ASCENDING KEY句およびDESCENDING KEY句

    マージ・キーが昇順なのか降順なのかを指定します。

    項目 説明

    data-name-1

    MERGEステートメントで使用されるKEYデータ項目を記述します。data-name-1は、file-name-1に関連するレコードに含まれたデータ項目である必要があります。

    データ項目は、キーのレベルが高い順に左から右へ記述されます。つまり、左端に記述されたデータ項目が最もレベルの高いキーとなり、その次のデータ項目が2番目のレベルのキーとなります。

    • KEYデータ項目は、各入力ファイルの中で物理的に同じ位置に存在する必要があり、データ形式も同じである必要があります。ただし、データ名は同じである必要はありません。

    • file-name-1が1つ以上のレコード記述を有する場合、KEYデータ項目は、その中のいずれかのレコードに記述されている必要があります。

    • KEYデータ項目は、OCCURS節を含むことができず、OCCURS節を含む項目に従属されてはなりません。

    • KEYデータ項目は、修飾することができます。

      KEYデータ項目は、以下のデータ・カテゴリのいずれかになります。

      • 英字、英数字、英数字編集

      • 数字

      • 数字編集(with USAGE DISPLAY)

      • 内部浮動小数点またはDISPLAY浮動小数点

  • COLLATING SEQUENCE句

    MERGEステートメントの動作で、KEYデータ項目に対して行われる英数字比較で使用される照合シーケンスを指定します。

    項目 説明

    alphabet-name-1

    SPECIAL-NAMES段落のALPHABET節に定義されている必要があります。

  • USING句

    入力ファイルを記述します。

    項目 説明

    file-name-2、...

    入力ファイルを定義します。USING句が使用されると、入力ファイル(file-name-2、...)のすべてのレコードがfile-name-1に自動転送されます。

    すべての入力ファイルは、データ部のFD項目に記述されている必要があります。

  • GIVING句

    出力ファイルを記述します。

    項目 説明

    file-name-3、...

    出力ファイルを記述します。

    GIVING句が記述されると、ソートされたすべてのレコードは出力ファイルに自動転送されます。

    すべての出力ファイルは、データ部のFD項目に記述されている必要があります。

  • OUTPUT PROCEDURE句

    マージ処理を実行した後、出力レコードを選択および変更するプロシージャ名を記述します。

    項目 説明

    procedure-name-1

    出力プロシージャの最初の(または一意の)セクションまたは段落を記述します。

    procedure-name-2

    出力プロシージャの最後のセクションまたは段落を記述します。

    出力プロシージャにはRETURNステートメントがあり、file-name-1が参照するファイルから一度に1つのレコードを受け取ります。そのほか、多様なステートメント(OPEN、WRITE、CLOSEなど)を使用して、出力レコードを選択、コピー、変更することができます。

MERGEステートメントが実行されると、file-name2、file-name3、...に含まれたすべてのレコードが、記述されたキーに従ってマージされます。