1. SORT

SORTステートメントは、1つ以上のファイルからレコードを受け取り、記述されたキーに従ってソートします。

figure pd sort
Figure 1. SORTステートメントの形式

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

  • file-name-1

    • ソートされるレコードが含まれているファイル名であり、SD項目に記述されている名前です。

  • identifier-1

    • ソートされるレコードが含まれているデータ記述(data description)です。グループ・タイプであり、ソートしたデータが含まれている必要があります。

  • ASCENDING KEY句およびDESCENDING KEY句

    • ソート・キーが昇順なのか降順なのかを指定します。

      項目 説明

      data-name-1

      SORTステートメントで使用されるKEYデータ項目を記述します。

      data-name-1は、file-name-1のレコードに含まれているデータ項目である必要があります。データ項目が記述されている順に、左から右へと重要度の高いキーとなります。つまり、最初に記述されたデータ項目が最も重要なキーとなり、その次に出てくるデータ項目が2番目の重要なキーです。

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

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

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

      • KEYデータ項目は、修飾することが可能であり、以下のデータ・カテゴリのいずれかになります。

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

        • 数字

        • 数字編集(with USAGE DISPLAY)

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

      file-name-3が指標ファイル(indexed file)を参照している場合、data-name-1はASCENDING句で記述される必要があり、データ項目は、指標ファイルの基本レコード・キーと同じ位置を指定しなければなりません。

  • DUPLICATES句

    • DUPLICATES句が記述されてない場合、同じキーを持つレコードの順序は予測できません。

    • この句が指定されると、キーは同じレコードに対してソートされ、その後は以下のような順となります。

      • 入力ファイルのレコード順と同じ順序

      • INPUT PROCEDUREが指定されているとき、RELEASEステートメントに使用されたレコードの順序

  • COLLATING SEQUENCE句

    • 構文チェックのみ行われます。

  • USING句

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

      項目 説明

      file-name-2、...

      入力ファイルを定義します。USING句が使用されると、入力ファイル(file-name-2、...、)のすべてのレコードがfile-name-1に自動転送されます。すべての入力ファイルは、データ部のFD項目に記述されている必要があります。

  • INPUT PROCEDURE句

    • INPUT PROCEDUREにはRELEASEステートメントがあり、一度に1つのレコードをfile-name-1が参照するファイルに転送します。

    • そのほか、様々なステートメント(OPEN、READ、CLOSEなど)を使用して、入力レコードを選択、コピー、変更することができます。ソート処理を実行する前に入力レコードを選択および変更するプロシージャ名を記述します。

      項目 説明

      procedure-name-1

      INPUT PROCEDUREの最初の(または一意の)セクションまたは段落を記述します。

      procedure-name-2

      INPUT PROCEDUREの最後のセクションまたは段落を記述します。

  • GIVING句

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

      項目 説明

      file-name-3、...

      出力ファイルを定義します。GIVING句が記述されると、ソートされたすべてのレコードは出力ファイルに自動転送されます。すべての出力ファイルはデータ部のFD項目に記述されている必要があります。

  • OUTPUT PROCEDURE句

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

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

      項目 説明

      procedure-name-3

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

      procedure-name-4

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