形式
OCOPY INDD(ddname1) OUTDD(ddname2)
BINARY | TEXT
CONVERT(character_conversion_table | YES | NO)
PATHOPTS (USE|OVERRIDE)
TO1047 | FROM1047
説明
OCOPY コマンドを使用して、MVS™ データ・セットと z/OS® UNIX ファイル・システムの間でデータをコピーすることができます。OCOPY では、次の 2 つの場合に CONVERT を使用する必要があります。
- コード・ページ IBM-037 と IBM-1047 との間の変換
- ASCII とコード・ページ IBM-1047 との間の変換
z/OS シェルはコード・ページ 1047 を使用し、MVS は国別拡張コード・ページを
使用します。コピー中に、データをコード・ページ 1047 へ変換、またはコード・ページ 1047 から変換することができます。
2 バイト・データが入っているファイルをコピーする場合は、CONVERT オプションを使用しないでください。
OCOPY コマンドを使用する前に、作業するデータ・セットまたはファイルを割り振る必要があります。TSO/E ALLOCATE コマンドまたは JCL DD ステートメントを使用してファイル
またはデータ・セットを割り振る場合は、PATHMODE および PATHOPTS パラメーターを
PATH パラメーターと一緒に指定することができます。JCL ステートメントでのこれらのパラメーターの使用について
は、「z/OS MVS JCL 解説書」を参照してください。また、TSO/E ALLOCATE コマンドについての詳細は、「z/OS TSO/E コマンド解説書」を参照してください。
OCOPY を使用して、以下のコピーができます。
- 区分データ・セット (PDS または PDSE) メンバーをファイルへ
- MVS 順次データ・セットをファイルへ
- ファイルを PDS または PDSE のメンバーへ
- ファイルを順次データ・セットへ
- ファイルをファイルへ
- PDS または PDSE を別の PDS または PDSE のメンバーへ
- PDS または PDSE のメンバーを順次データ・セットへ
- MVS 順次データ・セットを別の順次データ・セットへ
- MVS 順次データ・セットを PDS または PDSE のメンバーへ
INDD および OUTDD は両方とも MVS データ・セットまたはファイルを表すことができます。ソース (INDD) が MVS データ・セットで、
ターゲット (OUTDD) が z/OS UNIX ファイルの場合、OCOPY は MVS データ・セットをファイルにコピーします。
つまり、OPUT コマンドと同じ操作になります。ソース (INDD) が z/OS UNIX ファイルで、
ターゲット (OUTDD) が MVS データ・セットの場合、OCOPY は
ファイルを MVS データ・セットにコピーします。つまり、OGET コマンドと同じ操作になります。
ターゲットおよびソースは両方とも MVS データ・セットまたは区分データ・セットのメンバーか、または両方ともファイルの場合があります。一般に、この機能はコード・ページ変換に使用されます。
新しいファイルの許可ビットを設定する PATHMODE が割り振り中に指定されると、新しいファイルを作成する際に使用されます。新しいファイルの割り振り中に PATHMODE が指定されないと、割り振りによって 000 というデフォルトの許可を持つファイルが作成されます。これは、ユーザーのアクセスが不可であることを意味します。
パラメーター
- INDD(ddname1)
- ソースの DD 名を指定します。DD 名の長さは、8 文字までです。
- OUTDD(ddname2)
- ターゲットの DD 名を指定します。DD 名の長さは、8 文字までです。
- BINARY | TEXT
- コピーされるデータがバイナリー・ファイルであるかテキスト・ファイルであるかを指定します。
- BINARY
- コピーされるデータがバイナリー・ファイルであることを指定します。
未定義レコード・フォーマットのデータ・セットをファイルにコピーする場
合、デフォルトはバイナリーです。
BINARY を指定すると、OCOPY の操作において <改行> 文字または DBCS データの特性が考慮され
ません。例えば、2 バイト文字が MVS データ・セットのレコード間で分割されたり、または「シフトアウト」状態がレコード間にまたがることがありま
す。
- TEXT
- コピーされるデータがテキスト・ファイルであることを指定します。
未定義レコード・フォーマットのデータ・セットをファイルにコピーする
場合を除いて、デフォルトはテキストです。
DBCS サポート端末を使用する場合は、TEXT を使用する必要があります。ファイル・システム内の 2 バイト・データは、行の境界を示す <改行> 文字を含むものと想定されます。
<改行> 文字によって示されるこれらの行の中のデータは
、「シフトイン」状態で開始、終了する必要があります。
- CONVERT(character_conversion_table | YES | NO)
- 以下の間で変換を行うために使用する文字変換テーブルを指定します。
- コード・ページ IBM-037 と IBM-1047 との間
- ASCII とコード・ページ IBM-1047 との間
このオプショナルのオペランドが省略された場合、システムはデータを変換しないでコピーします。このオプションは、単一バイト・データにだけ使用してください。
CONVERT 値には以下のいずれかを指定します。
- character_conversion_table
- 以下の内の 1 つを指定してください。
- data_set_name(member_name)。文字変換テーブルが入っている区分データ・セット (ライブラリー) の名前および
メンバーの名前を指定します。
- data_set_name。デフォルトのメンバーとして文字変換テーブルが入っている
区分データ・セット (ライブラリー) の名前を指定します。デフォルトのメンバー名は BPXFX000 です。(BPXFX000 は別名であり、IBM® 出荷時には BPXFX111 を指しています。)完全修飾データ・セット名は、単一引用符で囲む必要があります。
- (member_name)。使用する変換テーブルの名前を指定します。これは PDS のメンバーです。data_set_name が省略されているため、テーブルは標準ライブラリー連結から検索されます。(デフォルトのライブラリーは SYS1.LINKLIB です。)
以下に、単一バイト・データをコピーするときに、データを異なる
コード・ページへ変換するために指定できるテーブルを要約します。
- BPXFX100。ヌル文字変換テーブル。ワークステーションの大括弧が、コード・ページ 1047 の大括弧と同じコード・ポイントである場合は、このテーブルを使用してください (これは、デフォルトです)。DBCS 端末を使用する場合も、このテーブルを使用してください。
- BPXFX111。コード・ページ IBM-037 と IBM-1047 との間の変換を行う
ための非 APL 変換テーブルです。
- BPXFX211。コード・ページ IBM-037 と IBM-1047 との間の変換を行う
ための APL 変換テーブルです。
- BPXFX311。コード・ページ ISO8859-1 と IBM-1047 との間の変換を行う
ための ASCII-EBCDIC 変換テーブルです。
- YES
- システムが変換を実行し、システム・ライブラリー連結内のデフォルト変換テーブル (BPXFX000) を使用する
ことを指定します。(BPXFX000 は別名であり、IBM 出荷時には BPXFX111 を指しています。)
- NO
- 変換が行われないことを指定します。NO は CONVERT オペランド省略と同じことです。
- PATHOPTS(USE | OVERRIDE)
- OCOPY が、割り振り中に指定される PATHOPTS 値を使用または変更する
必要があるかどうかを指定します。PATHOPTS が割り振りで指定されない場合、OCOPY は適切な PATHOPTS を用いて
ファイルを開きます。
- USE
- PATHOPTS 値を適用することを指定します。割り振られた
ときに読み取り専用として識別されたファイルが OCOPY の出力ファイルとして
識別されると OCOPY は失敗します。同様に、書き込み専用ファイルが入力ファイルとして
指定されると OCOPY は失敗します。USE はデフォルトです。
- OVERRIDE
- 割り振り中に指定された PATHOPTS 値を無視することを指定します。
- TO1047 | FROM1047
-
- TO1047
- 文字変換テーブルの TO セクションを使用することを指定します。これは、通常、コード・ページ IBM-037 または ASCII から
コード・ページ IBM-1047 に変換するために使用されます。
- FROM1047
- 変換テーブルの FROM セクションを使用することを指定します。これは、通常、コード・ページ IBM-1047 から
コード・ページ IBM-037 または ASCII に変換するために使用されます。
CONVERT オペランドが指定され、このオペランドが省略された場合は、次のようになります。
- MVS データ・セットからファイルにコピーされるデータは、テーブルの TO1047 セクションを使用します。
- ファイルから MVS データ・セットにコピーされるデータは、テーブルの FROM1047 セクションを使用します。
ファイルからファイルへのコピーまたは
MVS データ・セットから
MVS データ・セットへのコピーで CONVERT オペランドを
指定する場合は、TO1047 または FROM1047 のいずれかを指定する必要があります。
使用上の注意
- OCOPY を使用して、プログラム・オブジェクトを PDSE から
ファイル・システムにコピーすることができ、プログラム・オブジェクトはそこで
実行可能になります。区分データ・セット内にロード・モジュールがある場合でも、最初に IEBCOPY プログラムを使用してロード・モジュールを
区分データ・セットから PDSE にコピーし、次に OCOPY を使用してモジュールをファイル・システムにコピーする必要があります。IEBCOPY は、ロード・モジュールをプログラム・オブジェクトに変換します。
注: リンケージ・エディターを使用してロード・モジュールを
直接ファイル・システムに入れることができます。
- ファイル・システムから MVS データ・セットにコピーされた
実行可能ファイルは、MVS の下では実行可能ではありません。必要なディレクトリー情報の一部がコピーの際に失われるからです。実行可能ファイルのコピーについては、「z/OS V2R2.0 UNIX System Services ユーザーズ・ガイド 」を参照してください。
- スパン・レコードを持つデータ・セットは認められません。
- 既存のファイルにコピーする場合、OAPPEND が PATHOPTS に指定されていると、データはファイルの終わりに追加されます。それ以外の場合、既存のファイルは上書きされます。
- z/OS UNIX ファイル・システム内
のテキスト・ファイルから、
MVS データ・セットへのコピー:
- テキスト・ファイルの場合、すべての <改行> 文字はコピー中に取り
除かれます。<改行> 文字で終わるファイルの中の各行は、MVS データ・セットのレコ
ードにコピーされます。テキスト・ファイルを未定義レコード・フォーマットで MVS データ・セットにコピーすることはできません。
- 固定レコード・フォーマットの MVS データ・セットの場合:
レコード・サイズより長い行は切り捨てられます。行がレコード・サイズより短い場合、レコードにはブランクが埋め込まれます。
- 可変長レコード・フォーマットの MVS データ・セットの場合:
最大レコード・サイズより長い行は切り捨てられ、レコード長はそれに応じて設定されます。レコード長の変更は、行が短い場合にも起こります。
- z/OS UNIX ファイル・システム内のバイナリー・ファイルから
MVS データ・セットへのコピー:
- バイナリー・ファイルでは、データはすべて保存されます。
- 固定レコード・フォーマットの MVS データ・セットの場合:
データは、レコード長に等しいサイズのチャンク (塊) に分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードには
スペースまたはブランクが埋め込まれます。
- 可変長レコード・フォーマットの MVS データ・セットの場合:
データは、最大レコード長に等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードの長さは、残されたデータの長さに等しくなります。
- 未定義レコード・フォーマットの MVS データ・セ
ットの場合: データは、ブロック・サイズに等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードの長さは、残されたデータの長さに等しくなります。
- MVS データ・セットを z/OS UNIX ファイル・システムのテキスト・ファイルにコピーすると、
<改行> 文字が各レコードの終わりに追加されます。レコードに末尾ブランクがある場合、<newline> 文字は末尾ブランクの後に追加されます。MVS 固定ブロック・データ・セットは固定レコード長です。これは、各レコードの末尾まで、ブランクが存在することを意味します。
- MVS データ・セットを z/OS UNIX ファイル・システムのバイナリー・ファイルにコピーする場合、
<改行> 文字はレコードに付加されません。
戻りコード
- 0
- 処理は正常終了しました。
- 12
- 処理は失敗しました。エラー・メッセージが出ています。
例
- 次のコマンドは、MVS 順次データ・セットを z/OS UNIX ファイルにコピーします。
これはテキスト・データなので、コード・ページ変換はありません。
- 次のコマンドは、バイナリー・ファイルを区分データ・セットのメンバーにコピーします。
- 次のコマンドは、システム入力を MVS SYSIN データ・セットから
ファイル・システムにコピーし、コード・ページ変換を実行します。
- 次の OCOPY コマンドは、データをある MVS 順次データ・セットから
別の MVS 順次データ・セットにコピーし、コード・ページ変換を実行します。ここでは、OCOPY コマンドだけを示しています。必要な ALLOCATE コマンドは含まれていません。
- SYSUT1 は、ソース・データ・セットの DD 名です。
- TRANSDD は、ターゲット・データ・セットの DD 名です。
- これはテキスト・データです。
- データは、ユーザー指定の文字変換テーブルおよびテーブルの TO1047 セクションを使用して変換されます。
OCOPY INDD(sysut1) OUTDD(transdd) TEXT CONVERT('sys1.mylib(mytab)') TO1047