プログラムのコンパイルを指示するのに役立つステートメントがいくつかあります。
以下のコンパイラー指示ステートメントがあります。
COPY ステートメントの構文 >>-COPY-+-text-name-+-+--------------------------+--------------> '-literal-1-' '-+-OF-+--+-library-name-+-' '-IN-' '-literal-2----' >--+----------+--+-----------------------------------------+--->< '-SUPPRESS-' | .--------------------------. | | V | | '-REPLACING----operand-1--BY--operand-2-+-'
このライブラリー・ステートメントは、事前に作成されたテキストを COBOL プログラムに入れます。ユーザー定義語を text-name または library-name と同じにすることができます。text-name および library-name の固有性は、システム依存名の形式化および変換の規則が適用された後で決められます。library-name を省略した場合は、SYSLIB と見なされます。
JCL によってコンパイルするとき:
text-name、library-name、および literal は、次のように処理されます。
以下に例を示します。
COPY INVOICES1Q COPY "Company-#Employees" IN Personellib
IN/OF 句の中の library-name は、コピー元の区分データ・セットを識別する DD 名です。次の例に示すように、DD ステートメントを使用して、library-name を定義します。
//COPYLIB DD DSNAME=ABC.COB,VOLUME=SER=111111, // DISP=SHR,UNIT=3380
複数のコピー・ライブラリーを指定するには、JCL または JCL と IN/OF 句の組み合わせのいずれかを使用してください。JCL だけを使用する場合は、SYSLIB に対する DD ステートメント上でデータ・セットを連結します。あるいは、複数の DD ステートメントを定義し、COPY ステートメントに IN/OF 句を組み込みます。
コピー・ライブラリーの最大ブロック・サイズは、データ・セットが常駐している装置によって決まります。
z/OS UNIX シェルでコンパイルするとき:
cob2 コマンドを使用してコンパイルすると、コピーブックは HFS から取り込まれます。text-name、library-name、および literal は、次のように処理されます。
COPY "MyInc" COPY "x/MyInc" COPY "/u/user1/MyInc"
その名前の環境変数が定義されていない場合には、コピーブックは、以下の名前として、この順に探索されます。
export MYCOPY=mystuff/today.cpy export MYLIB=/u/user1
この設定の結果、次のようになります。
/u/user1/mystuff/today.cpy
library-name が環境変数で、この環境変数の値がコピーブックのコピー元のパスを識別する場合は、次の例に示すように、export コマンドを使用して library-name を定義します。
export COPYLIB=/u/mystuff/copybooks
環境変数の名前は大文字でなければなりません。複数のコピー・ライブラリーを指定するには、コロン (:) で区切った複数のパス名を、環境変数に設定してください。
library-name が省略されたときに、text-name が絶対パス名でないと、コピーブックは、次の順序で探索されます。
関連タスク
ソース・リストのヘッダーの変更
z/OS のもとでのコンパイラー・オプションの指定
UNIX のもとでのコンパイラー・オプションの指定
UNIX のもとでの環境変数の設定
反復コーディングの除去
関連参照
cob2 の構文およびオプション
COPY ステートメント (Enterprise COBOL 言語解説書)