CONCAT キーワードを使用した例

図 1. CONCAT キーワードを使用したデータ記述仕様
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
     A               LOGICAL FILE LF1 FOR CONCAT KEYWORD EXAMPLES
     A
     A          R RECORD1                   PFILE(PF1)
     A
     A            DATE                      CONCAT(MTH DAY YEAR)
     A
     A          K MTH
     A          K DAY

図 1 に示されている論理ファイルに対して COPY DDS は、 物理ファイルから得られるキーおよびキー名を生成します。

図 2. CONCAT キーワードを使用した例
    FD LF1 LABEL RECORDS ARE STANDARD.
    01  LOG-RECORD.
                COPY DDS-ALL-FORMATS OF LF1.
        05  LF1-RECORD PIC X(8).
   *  I-O FORMAT:RECORD-1   FROM FILE LF1        OF LIBRARY COPYDDS
   *
   *THE KEY DEFINITIONS FOR RECORD FORMAT  RECORD1
   *  NUMBER               NAME               RETRIEVAL    TYPE   ALTSEQ
   *   0001  MTH-DDS                           ASCENDING     AN     NO
   *         KEY NAME ORIGINATES FROM PHYSICAL FILE
   *   0002  DAY-DDS-DDS                       ASCENDING     AN     NO
   *         KEY NAME ORIGINATES FROM PHYSICAL FILE
        05 RECORD1       REDEFINES LF1-RECORD.
           06 DATE-DDS              PIC X(8).
           06 FILLER REDEFINES DATE-DDS.
              07 MTH-DDS            PIC X(2).
              07 DAY-DDS-DDS        PIC X(2).
              07 FILLER             PIC X(4).

MTH は物理ファイルから得られるキーであり、DATE は ILE COBOL の予約語なので、COPY ステートメントは、フィールド名 MTH および DATE に接尾部 -DDS を追加します。 DAY は物理ファイルから得られるキーであり、また ILE COBOL の予約語でもあるので、COPY ステートメントは、フィールド名 DAY に接尾部 -DDS を 2 つ追加します。

COPY ステートメントをファイル・セクションから作業用ストレージ・セクション、 またはリンケージ・セクションへ移動する場合は、DATE-DDS に従属するフィールドが利用できなくなることに注意してください。

図 3. CONCAT キーワードを使用した例—作業用ストレージ・セクション
    WORKING-STORAGE SECTION.
    01  WRK-RECORD.
                COPY DDS-ALL-FORMATS OF LF1.
       05  LF1-RECORD PIC X(8).
   *  I-O FORMAT:RECORD-1   FROM FILE LF1         OF LIBRARY COPYDDS
   *
       05  RECORD1      REDEFINES LF1-RECORD.
           06 DATE-DDS             PIC X(8).