COPY オプションは、読み取られたソース・データ・ストリームを変更せずに、STREAM OUTPUT ファイルへ書き出すことを指定します。 ファイル参照の指定を省略すると、出力ファイル SYSPRINT が想定されます。 入力ストリーム中に新しいレコードが現れると、COPY ファイルで新しいレコードが始められます。 以下に例を示します。
get file(sysin) data(A,B,C) copy(DPL);
この例では、入力ストリーム中の A、B、 および C に割り当てられている値が、同じ名前を持つ変数に伝送さ れるだけでなく、入力ストリーム中にあるときとまったく同じ形のままでファ イル DPL に書き出されます。 入力時にスキップされ、内部変数に伝送されないデータ値も、そのまま 出力ストリーム中にコピーされます。
COPY オプションが指定された GET ステートメントの実行中になんらかの条件が起こり、ON ユニットに制御が移され、その ON ユニット内で同じファイルを参照する別の GET ステートメントが実行されたとします。次に、その ON ユニットから最初の GET ステートメントに制御が戻されると、その GET ステートメントは、COPY オプションに指定されなかった場合と同様に実行されます。 ON ユニット内で、COPY オプションに関連付けられているファイルを 参照する PUT ステートメントが実行された場合には、伝送されるデータの位置は、最後に 伝送された COPY データ項目のすぐあとになるとは限りません。
COPY オプションで指定したファイルが現行プログラム内でまだオープンされて いないときは、そのファイルは、ストリーム出力伝送用に現行プログラム内で 暗黙にオープンされます。