区分データセットのコピー(IEBCOPY)

By 神居 - Posted: 2008/10/13 Last updated: 2010/09/16 - Leave a Comment

全メンバーをそのままコピーする

まずは基本形、SYSUT1→SYSUT2へ全メンバーをそのままコピーする。同名のメンバーはコピーされない。
VOS3ではSYSINカードは省略できない。必ずCOPY制御文が必要。


同名のメンバーの上書きコピー

これも基本形だが、同名のメンバーは上書きコピーされる。


メンバーの選択コピー(以降はSYSIN DD文のみ示します)

メンバーを選択してコピーするならこう指定すればよい。CはCopy、SはSelect。


特定のメンバーのみを上書きコピーする


異なるブロックサイズのデータセット間での、ロードモジュールのコピー

大きなブロックサイズから小さなブロックサイズのデータセットへコピーする場合は、このCOPYMODを使わないと不完全な形でロードモジュールがコピーされてしまう。ロードモジュールのように不定長レコードを持つ場合、読み出したブロックが4KBあっても書き出し先データセットのブロック長が2KBしかなければ先頭の2KB分しかコピーされない。そのためモジュールの実行時に何が起きるかわからない。


複数のライブラリーからメンバーを選択してコピーする

複数のデータセットからメンバーを選択することもできる。STEPを分けてそれぞれ入力データセットを変えてもかまわないが、こちらの方がスマートである。入力元データセットそれぞれに同名メンバーがある場合、INDDパラメーターで指定された順番でメンバーが見つけられ選択される。コピーされたメンバーがどのデータセットから選択されたなど、コピー処理の実行情報がSYSPRINTに出力される。意図した通りにコピーが行われたかをこのリストで確認できる。
複数のライブラリーに散在しているメンバーを1つのライブラリーに(メンバーのマージ)まとめたいような時に利用できる。逆に1つの入力ライブラリーから複数の出力ライブラリーに分散コピーすることもできる。

Posted in ありがたいサンプルJCL • • Top Of Page