ファイルの記述

ソート・ファイルおよびマージ・ファイルは、環境部の SELECT ステートメントとデータ部の SD (ソート記述) 項目を使用して記述する必要があります。 例として 図 103 を参照してください。 SD 項目に記述されるソート・ファイルまたはマージ・ファイルは、ソートまたはマージの操作中に使用される作業用ファイルです。 このファイルについて入出力ステートメントを実行することはできません。

ソートまたはマージの操作の入出力用に使用されるファイルを記述するには、 データ部で FD (ファイル記述) 項目を指定してください。 WORKING-STORAGE SECTION か LINKAGE SECTION だけに定義されているレコードのソートまたはマージを行うこともできます。 WORKING-STORAGE SECTION または LINKAGE SECTION のデータ項目のソートまたはマージだけを行い、ソートまたはマージ操作の入出力としてファイルを使用しない場合でも、 ソート・ファイルまたはマージ・ファイルに SD 項目と FILE-CONTROL 項目が必要です。

どの SD 項目にもレコード記述が含まれていなければなりません。 たとえば、次のようにします。

     SD  SORT-WORK-1.
     01  SORT-WORK-1-AREA.
         05  SORT-KEY-1      PIC X(10).
         05  SORT-KEY-2      PIC X(10).
         05  FILLER          PIC X(80).
図 103. ソート・プログラムの ENVIRONMENT DIVISION と DATA DIVISION の項目
 5722WDS V5R4M0  060210 LN  IBM ILE COBOL                 CBLGUIDE/SMPLSORT        ISERIES1   06/02/15 13:54:42        ページ    2
                                     ソ ー ス
  STMT PL SEQNO  -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN  S コピー名   変更日付
     1     000100 IDENTIFICATION DIVISION.
     2     000200 PROGRAM-ID.  SMPLSORT.
           000300
     3     000400 ENVIRONMENT DIVISION.
     4     000500 CONFIGURATION SECTION.
     5     000600 SOURCE-COMPUTER. IBM-ISERIES.
     6     000700 OBJECT-COMPUTER. IBM-ISERIES.
     7     000800 INPUT-OUTPUT SECTION.
     8     000900 FILE-CONTROL.
           001000*
           001100*  ソート・ファイルが文書として扱われるように名前を割り当てる
           001200*
     9     001300     SELECT SORT-WORK-1
    10     001400            ASSIGN TO DISK-SORTFILE1.
    11     001500     SELECT SORT-WORK-2
    12     001600            ASSIGN TO DISK-SORTFILE1.
    13     001700     SELECT INPUT-FILE
    14     001800            ASSIGN TO DISK-INFILE.
           001900
    15     002000 DATA DIVISION.
    16     002100 FILE SECTION.
    17     002200 SD  SORT-WORK-1.
    18     002300 01  SORT-WORK-1-AREA.
    19     002400     05  SORT-KEY-1              PIC X(10).
    20     002500     05  SORT-KEY-2              PIC X(10).
    21     002600     05  FILLER                  PIC X(80).
           002700
    22     002800 SD  SORT-WORK-2.
    23     002900 01  SORT-WORK-2-AREA.
    24     003000     05  SORT-KEY                PIC X(5).
    25     003100     05  FILLER                  PIC X(25).
           003200
    26     003300 FD INPUT-FILE.
    27     003400 01  INPUT-RECORD                 PIC X(100).
           003500
           003600*    .
           003700*    .
           003800*    .
           003900
    28     004000 WORKING-STORAGE SECTION.
    29     004100 01  EOS-SW                       PIC X.
    30     004200 01  FILLER.
    31     004300     05  TABLE-ENTRY  OCCURS 100 TIMES
           004400                      INDEXED BY X1        PIC X(30).
           004500*    .
           004600*    .
           004700*    .
           004800
                           * * * * *   ソ ー ス 仕 様 の 終 わ り   * * * * *

ソート・ファイルおよびマージ・ファイルは、手続き部 (PROCEDURE DIVISION) の SORT ステートメントまたは MERGE ステートメントを使用して処理します。 このステートメントでは、レコードのフィールドのうち、ソートまたはマージの順序を指定するキー・フィールドを指定します。 キーは昇順か降順に指定することができ、また複数キーを指定した場合にはその 2 つを組み合わせて使用するよう指定することができます。

同一の ILE COBOL プログラムで SORT ステートメントと MERGE ステートメントを混用できます。 1 つの ILE COBOL プログラムにいくつでもソート操作またはマージ操作を指定でき、 そのおのおのに独自の入力プロシージャーまたは出力プロシージャーを指定できます。

ILE COBOL プログラム中では、次の操作を含む複数のソート操作またはマージ操作を実行できます。

ただし、1 つの操作を完了してから別の操作を開始しなければなりません。