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).