COPY (ANSI'68 または LANGLVL(1) の変形)

OLDCOPY コンパイラ指令を設定すると、COPY 文の動作が若干変更される。具体的には、ANSI'74 および ANSI'85 規格の定義ではなく、旧 ANSI'68 規格の定義に準拠して動作するようになる。この変更後の動作は、IBM のメインフレーム上で LANGLVL(1) コンパイラ オプションを使用する際の、OS/VS COBOL および DOS/VS COBO Lの動作とも一貫性がある。

OLDCOPY コンパイラ指令を設定し、かつ 01 レベルのデータ記述全体をコピー メンバーに含める場合は、COPY 文およびコピーされるデータ記述の両方を 01 レベルのデータ項目で定義する。ただし、COBOL プログラムの残りの部分では、コピー文から得られたデータ名しか利用できない。次に例を示す。

ソース ファイルのコード:

 01   PRODUCT-CODE COPY COPYPROD.

コピーブック コード「COPYPROD」:

 01   PROD-CD.
     05   ITEM-NAME      PIC X(30).
     05   ITEM-NUMBER    PIC X(5).

結果の COBOL コード:

 01   PRODUCT-CODE.
     05   ITEM-NAME      PIC X(30). 
     05   ITEM-NUMBER    PIC X(5).