OCOPY - MVS データ・セット・メンバー または z/OS UNIX ファイルを 別のメンバーまたはファイルにコピーする

形式

   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 のいずれかを指定する必要があります。

使用上の注意

  1. OCOPY を使用して、プログラム・オブジェクトを PDSE から ファイル・システムにコピーすることができ、プログラム・オブジェクトはそこで 実行可能になります。区分データ・セット内にロード・モジュールがある場合でも、最初に IEBCOPY プログラムを使用してロード・モジュールを 区分データ・セットから PDSE にコピーし、次に OCOPY を使用してモジュールをファイル・システムにコピーする必要があります。IEBCOPY は、ロード・モジュールをプログラム・オブジェクトに変換します。
    注: リンケージ・エディターを使用してロード・モジュールを 直接ファイル・システムに入れることができます。
  2. ファイル・システムから MVS データ・セットにコピーされた 実行可能ファイルは、MVS の下では実行可能ではありません。必要なディレクトリー情報の一部がコピーの際に失われるからです。実行可能ファイルのコピーについては、「z/OS V2R2.0 UNIX System Services ユーザーズ・ガイド 」を参照してください。
  3. スパン・レコードを持つデータ・セットは認められません。
  4. 既存のファイルにコピーする場合、OAPPEND が PATHOPTS に指定されていると、データはファイルの終わりに追加されます。それ以外の場合、既存のファイルは上書きされます。
  5. z/OS UNIX ファイル・システム内 のテキスト・ファイルから、 MVS データ・セットへのコピー:
    • テキスト・ファイルの場合、すべての <改行> 文字はコピー中に取り 除かれます。<改行> 文字で終わるファイルの中の各行は、MVS データ・セットのレコ ードにコピーされます。テキスト・ファイルを未定義レコード・フォーマットで MVS データ・セットにコピーすることはできません。
      • 固定レコード・フォーマットの MVS データ・セットの場合: レコード・サイズより長い行は切り捨てられます。行がレコード・サイズより短い場合、レコードにはブランクが埋め込まれます。
      • 可変長レコード・フォーマットの MVS データ・セットの場合: 最大レコード・サイズより長い行は切り捨てられ、レコード長はそれに応じて設定されます。レコード長の変更は、行が短い場合にも起こります。
  6. z/OS UNIX ファイル・システム内のバイナリー・ファイルから MVS データ・セットへのコピー:
    • バイナリー・ファイルでは、データはすべて保存されます。
      • 固定レコード・フォーマットの MVS データ・セットの場合: データは、レコード長に等しいサイズのチャンク (塊) に分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードには スペースまたはブランクが埋め込まれます。
      • 可変長レコード・フォーマットの MVS データ・セットの場合: データは、最大レコード長に等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードの長さは、残されたデータの長さに等しくなります。
      • 未定義レコード・フォーマットの MVS データ・セ ットの場合: データは、ブロック・サイズに等しいサイズのチャンクに分割されます。それぞれのチャンクは、1 つのレコードに入ります。最後のレコードの長さは、残されたデータの長さに等しくなります。
  7. MVS データ・セットを z/OS UNIX ファイル・システムのテキスト・ファイルにコピーすると、 <改行> 文字が各レコードの終わりに追加されます。レコードに末尾ブランクがある場合、<newline> 文字は末尾ブランクの後に追加されます。MVS 固定ブロック・データ・セットは固定レコード長です。これは、各レコードの末尾まで、ブランクが存在することを意味します。
  8. MVS データ・セットを z/OS UNIX ファイル・システムのバイナリー・ファイルにコピーする場合、 <改行> 文字はレコードに付加されません。

戻りコード

0
処理は正常終了しました。
12
処理は失敗しました。エラー・メッセージが出ています。

  1. 次のコマンドは、MVS 順次データ・セットを z/OS UNIX ファイルにコピーします。 これはテキスト・データなので、コード・ページ変換はありません。
    • SYSUT1 は、ソース・データ・セット EMPLOYEE.DATA の DD 名です。
    • PATHNAME は、ターゲット、つまり既存のファイル /u/admin/employee/data の DD 名です。
      ALLOCATE FILE(sysut1) DATASET('employee.data')
      ALLOCATE FILE(pathname) PATH('/u/admin/employee/data')
      OCOPY INDD(sysut1) OUTDD(pathname) TEXT
  2. 次のコマンドは、バイナリー・ファイルを区分データ・セットのメンバーにコピーします。
    • BINARY は、ソース・ファイル bin/payroll の DD 名です。このファイルは作業ディレクトリー内にあります。
    • MVSPDS は、ターゲット・データ・セット・メンバー APPL.CODES(PAYROLL) の DD 名です。
      ALLOCATE FILE(binary) PATH('/bin/payroll')
      ALLOCATE FILE(mvspds) DATASET('appl.codes(payroll)')
      OCOPY INDD(binary) OUTDD(mvspds) BINARY
  3. 次のコマンドは、システム入力を MVS SYSIN データ・セットから ファイル・システムにコピーし、コード・ページ変換を実行します。
    • SYSIN は、ソース IBMUSR.EMPLOYEE.DATA の DD 名です。
    • PATHNAME は、ターゲット /u/admin/employee/data の DD 名です。このファイルは現在存在せず、ALLOCATE によって作成されます。
    • これはテキスト・データです。
    • 文字変換テーブルは、デフォルトのテーブルで、SYS1.BPXLATE データ・ セットのメンバー BPXFX000 です。(BPXFX000 は別名であり、IBM 出荷時には BPXFX111 を指しています。)
    • これは、MVS データ・セットからファイルへのコピーなので、変換テーブルのセクション TO1047 がデフォルトで使用されます。
      ALLOCATE FILE(sysin) DATASET('IBMUSR.EMPLOYEE.DATA')
      
      ALLOCATE FILE(pathname) PATH('/u/admin/employee/data')
      PATHMODE (sirwxu) PATHOPTS (ocreat, owronly)
      
      OCOPY INDD(sysin) OUTDD(pathname) TEXT CONVERT((BPXFX000))
      (BPXFX000 は別名であり、IBM 出荷時には BPXFX111 を指しています。)
  4. 次の OCOPY コマンドは、データをある MVS 順次データ・セットから 別の MVS 順次データ・セットにコピーし、コード・ページ変換を実行します。ここでは、OCOPY コマンドだけを示しています。必要な ALLOCATE コマンドは含まれていません。
    • SYSUT1 は、ソース・データ・セットの DD 名です。
    • TRANSDD は、ターゲット・データ・セットの DD 名です。
    • これはテキスト・データです。
    • データは、ユーザー指定の文字変換テーブルおよびテーブルの TO1047 セクションを使用して変換されます。
      OCOPY INDD(sysut1) OUTDD(transdd) TEXT CONVERT('sys1.mylib(mytab)') TO1047