ファイル・コピー (CPYF)

ファイル・コピー(CPYF)コマンドは,すべてまたは一部のファイルをデータベースまたは外部装置からデータベースまたは外部装置にコピーしますこのコマンドは次のことを行うことができます。

制約事項:

パラメーター

キーワード 記述 選択項目 ノーツ
FROMFILE FROMファイル 修飾オブジェクト名 必須, 定位置 1
修飾子 1: FROMファイル 名前
修飾子 2: ライブラリー 名前, *LIBL, *CURLIB
TOFILE TOファイル 単一値: *PRINT
その他の値: 修飾オブジェクト名
必須, 定位置 2
修飾子 1: TOファイル 名前
修飾子 2: ライブラリー 名前, *LIBL, *CURLIB
FROMMBR FROMメンバー 総称名, 名前, *FIRST, *ALL オプショナル, 定位置 3
TOMBR TOメンバーまたはラベル 名前, *FIRST, *FROMMBR, *ALL オプショナル, 定位置 4
MBROPT レコードの置き換えまたは追加 *NONE, *ADD, *REPLACE, *UPDADD オプショナル, 定位置 5
CRTFILE ファイル作成 *NO, *YES オプショナル, 定位置 6
OUTFMT 印刷形式 *CHAR, *HEX オプショナル
PRINT 印刷するレコード 単一値: *NONE
その他の値 (最大 3 回の繰り返し): *EXCLD, *COPIED, *ERROR
オプショナル
RCDFMT 論理ファイルのレコード様式 名前, *ONLY, *ALL オプショナル
FROMRCD コピー開始レコード番号 符号なし整数, *START オプショナル
TORCD コピー終了レコード番号 符号なし整数, *END オプショナル
FROMKEY コピー開始レコード・キー 単一値: *NONE
その他の値: 要素リスト
オプショナル
要素 1: キー・フィールドの数 整数, *BLDKEY
要素 2: キーの値 値 (最大 50 回の繰り返し): 文字値
TOKEY コピー終了レコード・キー 単一値: *NONE
その他の値: 要素リスト
オプショナル
要素 1: キー・フィールドの数 整数, *BLDKEY
要素 2: キーの値 値 (最大 50 回の繰り返し): 文字値
NBRRCDS コピーするレコードの数 符号なし整数, *END オプショナル
INCCHAR 文字テストによるレコード組込 単一値: *NONE
その他の値: 要素リスト
オプショナル
要素 1: フィールド 名前, *RCD, *FLD
要素 2: 文字位置 整数
要素 3: 比較演算子 *EQ, *GT, *LT, *NE, *GE, *NL, *LE, *NG, *CT
要素 4: 値 文字値
INCREL フィールド・テストでレコードの組込 単一値: *NONE
その他の値 (最大 50 回の繰り返し): 要素リスト
オプショナル
要素 1: 関係 *IF, *AND, *OR
要素 2: フィールド 名前
要素 3: 比較演算子 *EQ, *GT, *LT, *NE, *GE, *NL, *LE, *NG
要素 4: 値 文字値, *NULL
FMTOPT レコード様式フィールドのマップ 単一値: *NONE, *NOCHK, *CVTSRC
その他の値 (最大 2 回の繰り返し): *MAP, *DROP, *CVTFLOAT, *NULLFLAGS
オプショナル
SRCOPT ソース更新オプション 単一値: *SAME
その他の値 (最大 2 回の繰り返し): *SEQNBR, *DATE
オプショナル
SRCSEQ ソース・ステートメントの順序番号付け 要素リスト オプショナル
要素 1: 開始順序番号 0.01-9999.99, 1.00
要素 2: 増分番号 0.01-9999.99, 1.00
ERRLVL 許容エラー 符号なし整数, 0, *NOMAX オプショナル
COMPRESS 削除済みレコードの圧縮 *YES, *NO オプショナル

FROMファイル (FROMFILE)

コピーされるレコードが入っているデータベース・ファイルまたは装置ファイルを指定します。データベース・ファイルは物理ファイルまたは論理ファイルとすることができます。装置ファイルはディスケット・ファイルまたはテープ・ファイルとすることができます。

これは必須パラメーターです。

修飾子1: FROMファイル

名前
コピーするレコードが入っているデータベース・ファイルまたは装置ファイルの名前を指定してください。

修飾子2: ライブラリー

*LIBL
最初に一致するものが見つかるまで,ジョブのライブラリー・リストのユーザーとシステム部分のすべてのライブラリーが検索されます。
*CURLIB
データベース・ファイルまたは装置ファイルを見つけるためにジョブの現行ライブラリーが使用されます。ジョブの現行ライブラリーとして指定されているライブラリーがない場合は,QGPLライブラリーが使用されます。
名前
検索するライブラリーの名前を指定してください。

TOファイル (TOFILE)

コピーされたレコードを受け取るファイルを指定します。

これは必須パラメーターです。

注: 装置ファイルはディスケット・ファイル,テープ・ファイル,または印刷装置ファイルにすることができます。ただし,(1)取り出しファイルと受け入れファイルの両方がディスケット・ファイルである場合には,受け入れファイルはスプールされなければなりません(ディスケット装置ファイル作成(CRTDKTF)コマンド,ディスケット装置ファイル変更(CHGDKTF)コマンド,またはディスケット装置ファイル一時変更(OVRDKTF)コマンドにSPOOL(*YES)が指定されていなければならない)。(2)外部記述印刷装置ファイルを指定することはできません。

装置ファイルが印刷ファイルの場合,あるいはTOFILE(*PRINT)が指定された場合には,シフトアウトおよびシフトイン(SO-SI)文字は図形データには追加されません。OUTFMT(*HEX)を指定して,16進数形式でデータを印刷することができます。

単一値

*PRINT
データは,システム印刷装置ファイル(QSYSPRT)にコピーされ,印刷形式 (OUTFMT)パラメーターに指定された値にしたがって様式設定されます。

修飾子1: TOファイル

名前
コピーされるレコードを受け入れる物理ファイルまたは装置ファイルの名前を指定してください。

修飾子2: ライブラリー

*LIBL
最初に一致するものが見つかるまで,ジョブのライブラリー・リストのユーザーとシステム部分のすべてのライブラリーが検索されます。
*CURLIB
物理ファイルまたは装置ファイルを見つけるために,ジョブの現行ライブラリーが使用されます。現行ライブラリーとして指定されているライブラリーがない場合は,QGPLが使用されます。
名前
検索するライブラリーの名前を指定してください。

FROMメンバー (FROMMBR)

コピーされる取り出しファイル内のデータベース・ファイル・メンバー,あるいはディスケット・ファイル・ラベルまたはテープ・ファイル・ラベルを指定します。

*FIRST
データベース取り出しファイルの最初のメンバーがコピーされます。ディスケットの場合には,装置ファイルまたはディスケット・ファイル一時変更(OVRDKTF)コマンドにラベルIDを指定しなければなりません。取り出しファイルがインライン・ファイルである場合には,指定できる値は*FIRSTだけです。
*ALL
データベース取り出しファイルのすべてのメンバー,あるいはディスケット取り出しファイルのすべてのファイル・ラベルIDがコピーされます。テープ・ファイルまたはインライン・ファイルの場合には,*ALLは正しくありません。
名前
コピーされるデータベース取り出しファイル・メンバーの名前,あるいはファイル・メンバーのディスケット取り出しファイル・ラベルまたはテープ取り出しファイル・ラベルを指定してください。
総称名
同じ接頭部の名前をもつすべてのデータベース・ファイル・メンバー,あるいは同じ接頭部ラベルIDをもつすべてのディスケット・データ・ファイルをコピーするためには,総称名を指定してください。多くの取り出しファイル・メンバーまたはラベルIDのコピーの詳細については,FROMMBR(*ALL)の説明を参照してください。

TOメンバーまたはラベル (TOMBR)

コピー済みデータ・レコードを受け取る受け入れファイル・メンバーのデータベース・ファイル・メンバー名,あるいはディスケット・ファイルまたはテープ・ファイルのラベルIDを指定します。 TOファイル (TOFILE)パラメーターに*PRINTを指定した場合には,このパラメーターに*FIRSTまたは*FROMMBRのいずれかを指定しなければなりません。

*FIRST
指定したファイルの最初のメンバーが使用されます。
*FROMMBR
対応する取り出しファイルおよび受け入れファイルのメンバー名または装置ラベルIDが使用されます。
*ALL
データは区画に分割されたテーブルの適切な受け入れメンバーにコピーされます。*ALLが有効となるのは,区画に分割されたテーブルの場合だけです。
名前
物理受け入れファイル・メンバーの名前,またはコピー済みレコードを受け取るディスケットまたはテープ装置受け入れファイルのラベルIDを指定してください。

レコードの置き換えまたは追加 (MBROPT)

新しいレコードで置き換えるか,または既存のレコードに追加するかどうかを指定します。

注: レコードが既存の物理ファイルにコピーされている場合には,このパラメーターに*ADD, *UPDADD,または*REPLACEを指定しなければなりません。受け入れファイルは存在しないが,CRTFILE(*YES)が指定された場合には,コピー操作では,このパラメーターに指定された値とは関係なく,それが作成された後にそのファイルにコピーされるすべてのレコードに対してMBROPT(*ADD)と見なされます。

*ADDまたは*UPDADDが指定され,FROMファイルが空であった(レコードが含まれていない)場合には,コピー操作は正常に完了します。*REPLACEが指定され,FROMファイルが空であった場合には,コピー操作は異常終了します。

*NONE
パラメーターはこのコピー操作には適用されません。受け入れファイルが既存の物理ファイルである場合には*NONEは使用できません。
*ADD
システムは,既存のレコードの終わりに新しいレコードを追加します。
*REPLACE
システムは,既存のメンバーを消去し,新しいレコードを追加します。
*UPDADD
システムは,キーが重複しているレコードを更新し,新しいレコードを既存のレコードの終わりに追加します。使用可能な詳細説明は,IBM I INFORMATION CENTER (HTTP://WWW.IBM.COM/SYSTEMS/I/INFOCENTER/)の「ファイルおよびファイル・システム」カテゴリーにあります。

ファイル作成 (CRTFILE)

このコマンドを物理ファイルまたは論理ファイルからのコピーに使用する時に,指定した受け入れファイルが存在していない場合にデータを受け取る物理ファイルを作成するかどうかを指定します。受け入れファイルが,存在していないリモート・ファイルを識別する分散データ管理(DDM)ファイルの場合には,受け入れファイルはターゲット・システム上に作成されます。

*NO
このコマンドが開始される時には,受け入れファイルが存在していなければなりません。データを受け取るための物理ファイルは作成されません。
*YES
受け入れファイルが存在していない場合には, TOファイル (TOFILE)パラメーターに指定された名前の物理ファイルが作成されます。取り出しファイルがSQL表,ビュー,または索引であり,ユーザー定義のタイプ,データ・リンク,LOBフィールド・タイプ,またはXMLフィールド・タイプが入っている場合には,作成された物理ファイルがSQL表になります。他のすべてのインスタンスでは,作成された受け入れファイルはSQL表ではないデータベース物理ファイルになります。コピー操作で受け入れファイルを作成するには,通常のコピー操作の妥当性検査に加えて,次の特殊な条件がすべて満たされなければなりません。
  • 取り出しファイルは物理ファイルまたは論理ファイルでなければなりません。
  • TOファイル (TOFILE)パラメーターにライブラリー名を指定しなければなりません。省略時の値*LIBLは使用することはできません。
  • 別のファイル名またはライブラリー名への一時変更があってはなりません。受け入れファイルについては,このコマンドに指定した値を使用しなければなりません。
  • このコマンド実行するユーザーは,ファイルを受け入れファイル・ライブラリーに追加するための権限とともに,物理ファイル作成(CRTPF)コマンドに対する操作権限が必要です。
  • 取り出しファイルでは単一のレコード様式が使用されていなければなりません。取り出しファイルが複数様式の論理ファイルである場合には,論理ファイルのレコード様式 (RCDFMT)パラメーターにレコード様式名を指定しなければなりません。

印刷形式 (OUTFMT)

レコードを文字形式で印刷するか,あるいは文字および16進数形式の両方で印刷するかどうかを指定します。このパラメーターが使用されるのは,*PRINTが TOファイル (TOFILE)パラメーターに指定された場合,あるいは*EXCLDまたは*COPIEDが印刷するレコード(PRINT)パラメーターに指定された場合だけです。

*CHAR
レコードは文字形式で印刷されます。
*HEX
レコードは,文字形式および16進数形式の両方で印刷されます。

印刷するレコード (PRINT)

コピーされたレコードを印刷するか,除外されたレコードを印刷するか,あるいはその両方を印刷するかを指定します。

単一値

*NONE
コピーされたレコード,除外されたレコード,またはエラー・レコードは印刷されません。

その他の値(最大3個指定可能)

*EXCLD
文字テストによるレコード組込 (INCCHAR)パラメーターおよび フィールド・テストレコードの組込 (INCREL)パラメーターによるコピー操作から除外されたレコードが印刷されます。
*COPIED
コピーされたレコードが印刷されます。
*ERROR
許容エラー (ERRLVL)パラメーターに指定された数の回復可能な出力エラー・レコードが印刷されます。

論理ファイルのレコード様式 (RCDFMT)

データベース・ファイルからのコピーの場合にかぎり,コピーされるレコードのレコード様式名を指定します。取り出しファイルが論理ファイルまたはまたは物理ファイルでない場合には,指定できる値は*ONLYだけです。論理ファイルのレコード様式が1つだけの場合には,レコード様式名は任意指定ですが,取り出しファイルに複数のレコード様式がある場合には,様式名または*ALLを指定しなければなりません。

*ONLY
取り出しファイルの唯一のレコード様式がコピーされます。取り出しファイルが論理ファイルである場合には,この値が使用できるのはそのファイルにレコード様式が1つしかない場合だけです。
*ALL
取り出し論理ファイル内のすべてのレコード様式が使用されます。
名前
取り出しファイルが論理ファイルまたは物理ファイルである時には,コピーされるレコード様式の名前を指定してください。

コピー開始レコード番号 (FROMRCD)

コピーを開始するレコードのレコード番号を指定します。*NONE以外の値がコピー開始レコード・キー (FROMKEY)パラメーターまたはコピー終了レコード・キー (TOKEY)パラメーターに指定された場合には,レコード番号は有効ではなく,また,取り出しファイルがキー付き論理ファイルである場合にも,これは使用できません。

*START
コピー操作は,ファイルの最初のレコードから始められます。
1から4294967288
取り出しファイルからコピーする最初のレコードのレコード番号を指定します。

コピー終了レコード番号 (TORCD)

取り出しファイル(あるいは各取り出しファイル・メンバー)中で最後にコピーされるレコードのレコード番号を指定します。*NONE以外の値がコピー開始レコード・キー (FROMKEY)パラメーターまたはコピー終了レコード・キー (TOKEY)パラメーターに指定された場合,*END以外の値がコピーするレコードの数 (NBRRCDS)パラメーターに指定された場合,あるいは取り出しファイルがキー付き論理ファイルである場合には,レコード番号は有効ではありません。

*END
レコードは,ファイルの終わり条件が示されるまでコピーされます。
1から4294967288
取り出しファイルからコピーする最後のレコードのレコード番号を指定します。

コピー開始レコード・キー (FROMKEY)

キー・フィールドつきファイルをコピーする時に,コピーされる取り出しファイル(または各取り出しファイル・メンバー)の最初のレコードのキーの値を指定します。このパラメーターが有効となるのは,キー付きデータベース・ファイルである取り出しファイルの場合だけであり,レコード番号の値がコピー開始レコード番号 (FROMRCD)パラメーターまたはコピー終了レコード番号 (TORCD)パラメーターに指定された場合には,それは使用できません。

単一値

*NONE
コピーする最初のレコードをキーにより選択しません。

要素1: キー・フィールドの数

*BLDKEY
キー・フィールド(キーのすべてのフィールドの単一の文字ストリング値ではなく)の値のリスト(それぞれ,最大256文字)が提供されます。リスト内のいずれかの値(50まで)がヌル値可能キー・フィールドに対応している場合には,*BLDKEYは無効です。

要素2に指定した値のリストは,FROMファイルのキーの中の対応するフィールドに(その順序で)適用されます。文字フィールドの場合には,文字ストリングは現行ジョブのCCSIDからFROMファイルのフィールドのCCSIDに変換されます。日付,時刻,またはタイム・スタンプ・フィールドの場合には,対応する入力値はFROMファイルのフィールドの形式および区切り記号の形式に変換されます。可変長フィールドの場合には,2バイト長の部分でなく,文字データだけを入力してください。DBCS図形フィールドを指定する時には,入力ストリング(DBCSデータ)はシフトアウト(SO)文字とシフトイン(SI)文字で囲まなければなりません。SO-SI文字は入力ストリングから除去されて,残りのDBCSデータが現行ジョブの対応するDBCSのCCSIDからDBCS図形フィールドのDBCSのCCSIDに変換されます。

整数
コピーする最初のレコードを見つけるために使用するキー・フィールドの数を指定します。

要素2: キーの値

文字値
最初の要素で指定されたキー・フィールド数の実際のキーの値を指定する文字ストリングを指定します。このキー・ストリング値は,ブランクまたは特殊文字が入っている場合には引用符で囲んで指定しなければならず,また16進数形式で指定することもできます。16進数形式は,キーにパック10進数または2進数字フィールドが入っている場合,あるいはキーが可変長の文字フィールドである場合に有用です。単一のストリングが指定された時には,文字フィールドでCCSID変換は実行されません。

コピー終了レコード・キー (TOKEY)

キー・フィールドつきファイルをコピーする時に,コピーされる取り出しファイル(または各取り出しファイル・メンバー)の最終レコードのキーの値を指定します。このパラメーターが有効となるのは,取り出しファイルがキー付きデータベース・ファイルの場合だけであり,また,レコード番号の値がコピー開始レコード番号 (FROMRCD)パラメーターまたはコピー終了レコード番号 (TORCD)パラメーターに指定された場合,あるいはレコード数がコピーするレコードの数 (NBRRCDS)パラメーターに指定された場合には,これは使用できません。

単一値

*NONE
コピーされる最後のレコードはキーにより選択されません。

要素1: キー・フィールドの数

*BLDKEY
キー・フィールド(キーのすべてのフィールドの単一の文字ストリング値ではなく)の値のリスト(それぞれ,最大256文字)が提供されます。リスト内のいずれかの値(50まで)がヌル値可能キー・フィールドに対応している場合には,*BLDKEYは無効です。

要素2に指定した値のリストは,FROMファイルのキーの中の対応するフィールドに(その順序で)適用されます。文字フィールドの場合には,文字ストリングは現行ジョブのCCSIDからFROMファイルのフィールドのCCSIDに変換されます。日付,時刻,またはタイム・スタンプ・フィールドの場合には,対応する入力値はFROMファイルのフィールドの形式および区切り記号の形式に変換されます。可変長フィールドの場合には,2バイト長の部分でなく,文字データだけを入力してください。DBCS図形フィールドを指定する時には,入力ストリング(DBCSデータ)はシフトアウト(SO)文字とシフトイン(SI)文字で囲まなければなりません。SO-SI文字は入力ストリングから除去されて,残りのDBCSデータが現行ジョブの対応するDBCSのCCSIDからDBCS図形フィールドのDBCSのCCSIDに変換されます。

整数
コピーする最後のレコードを見つけるために使用するキー・フィールドの数を指定します。

要素2: キーの値

文字値
最初の要素で指定されたキー・フィールド数の実際のキーの値を指定する文字ストリングを指定します。このキー・ストリング値は,ブランクまたは特殊文字が入っている場合には引用符で囲んで指定しなければならず,また16進数形式で指定することもできます。16進数形式は,キーにパック10進数または2進数字フィールドが入っている場合,あるいはキーが可変長の文字フィールドである場合に有用です。単一のストリングが指定された時には,文字フィールドでCCSID変換は実行されません。

コピーするレコードの数 (NBRRCDS)

受け入れファイルにコピーされるレコード数を指定します。

*END
TOKEYまたはTORCDパラメーターが指定されていない限り,取り出しファイルにファイルの終わり条件が示されるまで,レコードがコピーされます。
1から4294967288
受け入れファイルにコピーするレコード数を指定します。

文字テストによるレコード組込 (INCCHAR)

文字ストリング値と,レコード内のフィールドまたはレコード全体の中の所定の位置にあるデータとの比較に基づいて,レコードをコピーすることを指定します。

単一値

*NONE
コピーするレコードを選択するために比較を使用しません。

比較値

どのレコードをコピーするかを判別するための比較を指定するには,4つの値を入力しなければなりません。まず,*RCDまたはフィールド名を入力し,その後に,比較を制御する3つの値,すなわち,開始位置,演算子,文字ストリング値を入力しなければなりません。この関係を満足するすべてのレコードが受け入れファイルにコピーされます。

要素1: フィールド

*RCD
文字ストリング値が,取り出しファイル内にある各レコードの中の指定された開始位置にあるデータと比較されます。
*FLD
この値は*RCD値と同じです。
名前
比較を行うために使用されるレコード様式中のフィールド名を指定してください。フィールドは,取り出しファイルについてのデータ記述仕様(DDS)で文字フィールドとして定義されていなければなりません。

要素2: 文字位置

開始桁
フィールドまたはレコード内の比較が開始される開始位置を指定してください。可変長フィールドの場合には,この位置は可変長フィールドのデータ部分の位置です。DBCS図形フィールドの場合には,この位置はDBCS文字部分です。*CT以外の演算子の場合には,指定した文字ストリング値の長さ(最大256桁)に対して比較が行われます。*CT演算子の場合には,フィールドまたはレコードは,指定した開始位置からそのフィールドまたはレコードの終わりまでスキャンされ,指定された文字ストリングが入っているかどうかが判別されます。

要素3: 比較演算子

レコードまたはフィールドと指定した文字ストリングとの間に存在しなければならない関係を示す演算子を指定してください。

*EQ
等しい
*GT
より大
*LT
より小
*NE
等しくない
*GE
より大きいか等しい
*NL
より小さくない
*LE
より小さいか等しい
*NG
より大きくない
*CT
含む

要素4:

文字値
指定したフィールドまたはレコードと比較する文字ストリング(最大256桁の長さ)を指定します。この文字ストリング値は,ブランクまたは特殊文字が入っている場合にはアポストロフィで囲んで指定しなければならず,また16進数形式で指定することもできます。フィールド名を指定した場合には,文字ストリング値は比較を実行する前に現行ジョブのCCSIDからフィールドのCCSIDに変換されます。可変長フィールドのフィールド名を指定する場合には,2バイト長の部分でなく,比較する文字データだけを指定しなければなりません。フィールド名を指定した場合には,ヌル値であるフィールド値とのいずれの比較でも偽についてテストされます。DBCS図形では,シフトアウトとシフトイン(SO-SI)内に入力(DBCSデータ)ストリングを指定します。SO-SI文字は入力ストリングから除去されて,残りのDBCSデータが現行ジョブの対応するDBCSのCCSIDからDBCS図形フィールドのDBCSのCCSIDに変換されます。

フィールド・テストでレコードの組込 (INCREL)

レコード中の一定のフィールドに指定した関係を満たすデータがあるかどうかに基づいてレコードがコピーされることを指定します。このパラメーターは,複数のレコード様式をもつ論理ファイルのすべてのレコード様式からのコピーでは無効です。

単一値

*NONE
コピーするレコードを選択するためにフィールド値の比較を使用しません。

関係値

コピーするレコードの条件を指定するために,各条件についてそれぞれ1セットの値を指定します。最大50セットの値を指定することができます。各セットには,必ず次の4つの値が含まれていなければなりません。

  1. 論理演算子
  2. 比較されるフィールドの名前
  3. 比較演算子
  4. 比較値

要素1: 関係

*IF
これは比較のセットの最初の値として指定しなければなりません。
*AND
*AND値の両側のフィールド値比較グループは,レコードがコピーされる前にすべて満たされなければなりません。
*OR
*OR値のどちらかのフィールド値比較グループが満たされた場合には,そのレコードはコピーされます。

要素2: フィールド

名前
比較されるフィールド名を指定してください。このフィールドは,取り出しファイルのレコード様式になければならず,ファイルについてのデータ記述仕様(DDS)中に文字または数字として定義することができます。

要素3: 比較演算子

レコード内のフィールドと指定したフィールド値との間に存在していなければならない関係を示す演算子を指定します。

*EQ
等しい
*GT
より大
*LT
より小
*NE
等しくない
*GE
より大きいか等しい
*NL
より小さくない
*LE
より小さいか等しい
*NG
より大きくない

要素4:

*NULL
*NULLは,レコード中のフィールドの値がヌル値であるかどうかをテストする値として使用することができます。*NULLを指定した場合には,演算子*EQおよび*NEだけを使用することができます。"*EQ *NULL"関係が真となるのは,レコード中のフィールド値がヌル値の場合だけです。"*NE *NULL"関係が真となるのは,レコード中のフィールド値がヌル値でない場合だけです。
文字値
指定したフィールドの内容と比較される値(最大256桁)を指定します。指定される値を別のフィールド名とすることはできません。フィールド値は,ブランクまたは特殊文字が入っている場合にはアポストロフィで囲んで指定しなければならず,また16進数形式で指定することもできます。ヌルであるレコード中のフィールド値と*NULL以外の比較は,使用する演算子に関係なく偽についてテストされます。可変長フィールドの場合には,2バイト長の部分でなく,値のデータ部分だけを指定してください。文字フィールドの場合には,このデータはデータとフィールド・データとの比較の前に,現行ジョブのCCSIDからフィールドのCCSIDに変換されます。DBCS図形フィールドを指定する時には,入力ストリング(DBCSデータ)はシフトアウトとシフトイン(SO-SI)の文字で囲まなければなりません。SO-SI文字は入力ストリングから除去されて,残りのDBCSデータが現行ジョブの対応するDBCSのCCSIDからDBCS図形フィールドのDBCSのCCSIDに変換されます。

レコード様式フィールドのマップ (FMTOPT)

物理または論理取り出しファイルを物理受け入れファイルにコピーする時に,どのフィールド・レベル・レコード様式処理(ある場合)を実行するかを指定します。取り出しファイルおよび受け入れファイルが異なったファイル・タイプ(一方は*SRCで,他方は*DATA)のデータベース・ファイルである場合には,*CVTSRCを指定しなければなりません。

単一値

*NONE
コピー操作の実行中には,フィールドのマッピングまたは除外は行われません。この値が有効なのは,取り出しファイルと受け入れファイルの両方がデータベース・ファイルでない場合,または両方ともデータベース・ファイルでレコード様式が同じ場合だけです。レコード様式が同じになるのは,取り出しファイルと受け入れファイルの両方の形式にすべてのフィールドが存在する場合で,両方のレコードの開始位置と属性が同じ場合だけです。属性には,フィールドがヌル値可能であるかどうかと,日付/時刻の形式および区切り記号(フィールドが日付/時刻フィールドの場合)が含まれます。ヌル値がコピーされるのは,*NONEが有効な場合だけです。
*NOCHK
データベース・ファイルのレコード様式が異なる場合には,コピー操作は,その相違点にかかわらず,続行されます。レコード・データは,1つのファイルから他のファイルに(左から右へ)直接コピーされます。すべてのレコード様式を複数の様式の論理ファイルから取り出しファイルと同じタイプ(ソースまたはデータ)の物理ファイルにコピーする場合には,*NOCHKが必要です。この値が指定された場合には,ヌル値は無視されて,日付/時刻データの変換は行われません。
*CVTSRC
データベース・ファイル相互間,ソース・ファイルからデータ・ファイルへ,またはデータ・ファイルからソース・ファイルへのコピーのためには,この値が使用されます。これが有効なのは,取り出しファイルと受け入れファイルが異なったタイプ(ソースとデータ)の時だけです。ファイル・タイプの変換は次の通り行われます。
  • 受け入れファイルがデータ・ファイルである場合には,取り出しファイルの順序番号および日付フィールドが除去され,取り出しファイルの各レコードのソース・データ部分が受け入れファイルにコピーされます。
  • 受け入れファイルがソース・ファイルである場合には,順序番号と日付フィールドが追加され,取り出しファイルのレコード・データがそれぞれの受け入れファイルのレコードのソース・データ部分にコピーされます。ヌル値は無視されて,日付/時刻データの変換は行われません。
  • 取り出しファイルまたは受け入れファイルがデータベース・ファイルでない時には,ソース・ファイルからデータ・ファイルへのコピーあるいはデータ・ファイルからソース・ファイルへのコピーではFMTOPT(*CVTSRC)は必要ありません。ファイル・タイプによって,自動的に順序番号および日付フィールドが加えられるか,あるいは除外されます。受け入れファイルがソース物理ファイルである場合には,受け入れファイルにコピーされたレコードに作成される順序番号を制御するためにSRCOPTパラメーターおよびSRCSEQパラメーターを使用することができます。

その他の値(最大2個指定可能)

*MAP
取り出しファイルと受け入れファイルのレコード様式中で同じ名前のフィールドがコピーされ,取り出しファイルの様式中に存在しない受け入れファイル中のフィールドは,受け入れファイルのデータ記述仕様(DDS)のDFTキーワードに指定された省略時の値に設定されるか,あるいは数字フィールドの場合にはゼロ,文字フィールドの場合にはブランク,日付/時刻フィールドの場合には現在の日付/時刻,またヌル値可能フィールドの場合にはヌル値に設定されます。

*MAPが指定されている場合には,*DROPも指定することができます。マップされたフィールドは,取り出しファイルと受け入れファイルのレコード様式で開始位置が異なる場合があります。

*MAPが指定されていて,取り出しファイル・フィールドのCCSIDおよび受け入れファイル・フィールドのCCSIDの間に正しい変換が定義されている場合には,文字データは受け入れファイル・フィールドのCCSIDに変換されます。しかし,取り出しファイル・フィールドのCCSIDまたは受け入れファイル・フィールドのCCSIDのいずれかが65535である場合には,文字データは変換されません。

*MAPによって,日付/時刻データの変換とヌル値のコピーができるようになります。

*DROP
受け入れファイルのレコード様式中に取り出しファイルのレコード様式のフィールド名が存在しない場合には,フィールド・レベルのマッピングでこの値を指定しなければなりません。*DROPが指定されている場合には,*MAPも指定することができます。*DROPが指定されている場合には,両方のレコード様式中に存在するフィールド名はすべて取り出しファイルおよび受け入れファイルのレコード様式中で同じ属性と相対位置を備えていなければならず,あるいは*MAPも指定しなければなりません。ヌル値はコピーされます。
*CVTFLOAT
出力データベース物理ファイルの外部記述によって識別される各浮動小数点フィールドを処理し,それをシステム/390の浮動小数点形式からI5/OSによって使用されるIEEE形式に変換するためには,CPYFを指定します。
*NULLFLAGS
出力ファイルの外部記述によってヌル値可能と識別されるそれぞれのフィールドの後のバイトを使用して,対応する入力フィールドがヌルであるかどうかを示すフラグとして使用するためには,CPYFを指定します。このバイトがブランク('40'X)であるかまたは'00'Xが入っている場合には,データはヌル値でないと見なされます。このフラグにその他の値が入っていると,対応する入力フィールドのデータは無視されて,出力値がヌル値に設定されます。

: *CVTFLOATまたは*NULLFLAGSが指定されていて,入力ファイルが外部記述の場合には,その入力ファイルの外部記述はコピーされたデータのマッピングには使用されません。*CVTFLOATまたは*NULLFLAGSが指定されている場合には,他の値は(両方が指定されていない限り)すべて無視されます。TOFILEは外部記述物理データ・ファイルでなければなりません。*CVTFLOATまたは*NULLFLAGSが指定されている場合には,次のパラメーター値を指定することはできません。

*** 重要 ***

*CVTFLOATおよび*NULLFLAGSが使用されるのはI5/OS形式にデータを変換する場合だけ,データが損傷する可能性を避けるために正しく使用しなければなりません。

*****************

ソース更新オプション (SRCOPT)

ソース物理ファイルへのコピーの場合にだけ,順序番号フィールドに新しい順序番号が挿入されるかどうか,および日付フィールドがゼロにセットされるかどうかを指定します。*SEQNBRと*DATEの両方を指定することができます。

単一値

*SAME
受け入れファイルにコピーされるレコードの中で,ソース順序番号は挿入されず,ソース日付フィールドはゼロにセットされません。受け入れファイルがソース物理ファイルでない場合には,*SAMEを指定しなければなりません。

その他の値(最大2個指定可能)

*SEQNBR
受け入れファイルにコピーされるレコードに,新しい順序番号が挿入されます。新しい順序番号は,ソース・ステートメントの順序番号付け (SRCSEQ)パラメーターの値により制御されます。
*DATE
受け入れファイルにコピーされるレコードの中で,ソース日付フィールドがゼロにセットされます。

ソース・ステートメントの順序番号付け (SRCSEQ)

*SEQNBRがソース更新オプション (SRCOPT)パラメーターに指定された時にかぎり,受け入れファイルにコピーされた最初のレコードに指定する順序番号,およびコピーされた他のすべてのレコードの番号を付け直すために追加される値を指定します。

要素1: 開始順序番号

1.00
受け入れファイルにコピーされた最初のソース・レコードは,0001.00という順序番号をもちます。
0.01から9999.99
受け入れファイルにコピーされる最初のソース・レコードの順序番号を指定します。

要素2: 増分番号

1.00
受け入れファイル中のコピーされたソース・レコードは,整数の増分値1で番号が付け直されます。
0.01から9999.99
最初のレコードの後でコピーされるすべてのソース・レコードの番号を付け直すために追加される値を指定します。

許容エラー (ERRLVL)

データベース取り出しファイル・メンバーまたはテープ取り出しファイルのラベルIDに対するコピー操作の実行中に,容認されるファイルの回復可能な読み取りまたは書き込みエラーの最大数を指定します。

0
回復可能エラーが1つでも起こると,そのエラーが起こったファイル・メンバーでコピー操作は終了します。
*NOMAX
エラーの最大数が指定されず,すべての回復可能エラーは容認されます。
整数
コピーされる各取り出しファイル・メンバーまたはラベルで許される回復可能エラーの最大数を指定します。

削除済みレコードの圧縮 (COMPRESS)

受け入れファイルに圧縮形式の取り出しファイルが入るかどうかを指定します。圧縮は,取り出しファイルの削除済みレコードが受け入れファイルにコピーされなかった時に起こります。*NOは,取り出しファイルと受け入れファイルが両方とも物理ファイルである時にすべてのレコードをコピーするために使用されます。取り出しファイルが削除可能で,受け入れファイルが削除可能でない場合には,*YESを指定しなければなりません。

*YES
受け入れファイルにコピーされたレコードは圧縮されます。取り出しファイルに存在する削除済みレコードは受け入れファイルにコピーされません。
*NO
削除されたレコードと削除されないレコードの両方が受け入れファイルにコピーされます。

1: 物理ファイルから物理ファイル

CPYF   FROMFILE(PERSONNEL/PAYROLL)  TOFILE(TESTPAY/PAYROLL)
       MBROPT(*ADD)  CRTFILE(*YES)  ERRLVL(10)

このコマンドは,PERSONNELライブラリー中のPAYROLLの名前の物理ファイル中のすべてのレコードを,TESTPAYライブラリー中のファイルPAYROLLにコピーします。取り出しファイルに複数のメンバーが含まれている場合には,最初のメンバーだけがコピーされます。TESTPAY/PAYROLLが存在しない場合は,レコードのコピーの前にそれが作成されて,コピーされたレコードを受け取るために,取り出しファイルと同じ名前のメンバーがTESTPAY/PAYROLLに追加されます。

MBROPT(*ADD)が指定されたために,コピーされたレコードは受け入れファイル・メンバー中の既存レコードのいずれかに追加されます。RCDFMT(*NONE)が想定されるために,受け入れファイルTESTPAY/PAYROLLは,取り出しファイルと同じレコード・フォーマットでなければなりません。受け入れファイル(TESTPAY/PAYROLL)がコピー操作で作成される場合は,これは,取り出しファイル(PERSONNEL/PAYROLL)と同じレコード・フォーマットおよびアクセス・パスをもつことになります。コピー操作中に10個以上の回復可能エラーが起こった場合には,操作は終了します。

また,FROMMBR(*ALL)およびTOMBR(*FROMMBR)も指定された場合には,取り出しファイルのすべてのメンバーが受け入れファイルの対応するメンバー(同じ名前をもつ)にコピーされます。対応する受け入れメンバーがないそれぞれの取り出しメンバーでは,メンバーが受け入れファイルに追加されて,取り出しメンバー中のすべてのレコードが新規メンバーにコピーされます。すでに存在するそれぞれの取り出しメンバーでは,新規のレコードだけがメンバーに追加されます。どのタイプのコピー操作でも,既存のレコードへの更新が行われません。取り出しファイル中で対応するメンバーがないメンバーが受け入れファイルに含まれている場合には,コピー操作の後,受け入れファイルには,取り出しファイルより多いメンバーが含まれます。

コピー中のメンバー内で10個以上の回復可能エラーが起こった場合には,その操作はその時点で終了して,残りのメンバーはコピーされません。すべての回復可能エラーを許容するためにERRLVL(*NOMAX)を指定できるので,特定のファイル・メンバーで回復可能エラーがいくつ起こっても,コピー操作は終了しません。

2: 物理ファイルから物理ファイル

CPYF   FROMFILE(PERSONNEL/EMP1)  TOFILE(PERSONNEL/VACLEFT)
       FROMMBR(VAC)  MBROPT(*REPLACE)
       FROMKEY(1 X'0008872F')  TOKEY(1 X'0810199F')
       INCREL((*IF VAC *GT 5.0))  FMTOPT(*MAP *DROP)

この例では,受け入れファイル(VACLEFT)が既存の物理ファイルであるが,そのレコード・フォーマットはコピーしているEMP1の名前の物理ファイルのフォーマットと異なります。両方のファイルはPERSONNELライブラリー中にあります。取り出しファイルには従業員レコードが含まれていて,キー(従業員番号)をもっています。取り出しファイルで選択したレコードは,008872から810199の範囲の従業員番号をもっています。5日以上の休暇(VAC)をもつ従業員のレコードだけが受信ファイルにマップされます。レコードはメンバーVACから選択されて,これらはファイルVACLEFTの最初のメンバー中の既存レコードを置き換えます。

ファイルのキーがパック10進数であるために,FROMKEYおよびTOKEYの値は16進数ストリングとして指定する必要があり,値には先行ゼロおよび16進数符号が必要となります。同じキーの値の範囲を指定するもう1つの方法は次の通りです。

       FROMKEY(*BLDKEY 8872)  TOKEY(*BLDKEY 810199)

*BLDKEYを指定すると,コピー操作はそれぞれの数値を,ファイル・キー定義に必要な形式に変換します。単一値だけが指定されるので,使用されるキー・フィールドは1つだけです。FROMKEYおよびTOKEYパラメーターの*BLDKEY形式によって,キーが数値の時の先行ゼロおよび肯定符号は省略できます。

ファイルのキーが複数フィールドの複合の場合には,*BLDKEYフォームは,FROMKEYおよびTOKEYパラメーターの値のリストとともに使用されます。たとえば,ファイルのキー・フィールドが販売領域(10桁)で,最終月の販売(小数点以下の2桁の7桁のパック10進数)の場合には,完全なキーは次のいずれかの方法で指定されます。

       FROMKEY(*BLDKEY (GEORGIA  99.50))
       - あるいは -
       FROMKEY(2 X'C7C5D6D9C7C9C14040400009950F')

*BLDKEY形式を使用する時には,それぞれの文字フィールドにブランクが埋め込まれて,それぞれの数字フィールドは小数点を正しく位置合わせするためには,左または右に桁移動された値の実際のキー形式に変換されます。

3: 物理データ・ファイルから物理ソース・ファイル

CPYF   FROMFILE(MYLIB/DATAFILE)  TOFILE(QIDU/QTXTSRC)
       FROMMBR(A1)  TOMBR(*FROMMBR)  MBROPT(*REPLACE)
       FMTOPT(*CVTSRC)

このコマンドは,FILETYPE(*DATA)として定義される,ライブラリーMYLIB中の物理ファイルDATAFILEから,FILETYPE(*SRC)として定義される,ライブラリーQIDU中の物理ファイルQTXTSRCにレコードをコピーします。この2つのデータベース・ファイルは異なったタイプのものなので,FMTOPT(*CVTSRC)を指定しなければなりません。レコードはメンバーA1にコピーされて,取り出しファイル・メンバーと同じ名前をもちます。ソース・ファイルにコピーされるレコードの順序実行ソース・フィールドに値が割り当てられて,これは1.00で始まり,1.00で増分されます。SRCOPT(*SEQNBR)を指定した場合には,SRCSEQパラメーターを使用して,作成される順序実行を制御します。日付ソース・フィールドは常にゼロに設定されます。

4: 論理ファイルから物理ファイル

CPYF   FROMFILE(DEPTS/SALES)  TOFILE(DEPTS/YTDSALES)
       FROMMBR(TOTSALES)  TOMBR(MARCH)  RCDFMT(AA)
       NBRRCDS(5)  MBROPT(*REPLACE)

このコマンドは,(ライブラリーDEPTS中の)論理ファイルSALESのメンバーTOTSALESから,(ライブラリーDEPTS中の)物理ファイルYTDSALESのメンバーMARCHに5個のレコードをコピーします。メンバーMARCHが存在しない場合には,コピー操作によってそれが作成されて,受け入れファイルに自動的に追加されます。レコード様式AAを使用するライブラリーDEPTS中の論理ファイルSALESからのレコードだけがコピーされて,同じ様式をもつYTDSALESにこれらがコピーされます。コピー操作の後,そのメンバーのすべてのレコードが最初に作成されて,次にTOTSALESメンバーの最初の5つのレコード(キー・シーケンスの)のデータだけをそれらにコピーするので,MARCHメンバーには5個の非削除レコードだけが含まれています。

5: 装置ファイルから物理ファイル

CPYF   FROMFILE(QDKT)  TOFILE(QGPL/QCLSRC)  FROMMBR(PAY*)
       TOMBR(*FROMMBR)  MBROPT(*REPLACE)
       SRCOPT(*SEQNBR)  SRCSEQ(1  .25)

このコマンドは,文字PAYで始まる名前のディスケット・ラベルの汎用セットからレコードをコピーします。これらは,QGPLライブラリー中のソース・ファイルQCLSRCの同名のメンバーにコピーされます。受け入れファイルがソース・ファイルであっても,QDKTはFILETYPE(*SRC)として定義された装置ファイルよりも効率的であるために,FILETYPE(*DATA)と定義されたディスケット・ファイル(QDKT)が取り出しファイルとして使用されます。コピーされる各ラベルでは,最初のレコードの順序実行は1.00であり,その後に続くレコードは.25が増分されます。ソースの日付フィールドは自動的にゼロに設定されます。

6: 物理ファイルから印刷装置

CPYF   FROMFILE(TEMPFILE)  TOFILE(*PRINT)  FROMMBR(EMP1)
       FROMKEY(1 448762)  NBRRCDS(20)  OUTFMT(*HEX)

このコマンドは,TEMPFILEの名前のファイルのメンバーEMP1からレコードをコピーします。レコードは従業員レコードです。1つのキー・フィールド,従業員番号がレコード・キーの探索に使用されます。従業員番号448762で開始して,20個のレコードがIBM提供印刷装置ファイルQSYSPRTにコピーされて,文字と16進形式の両方でリストされます。IBM提供印刷装置ファイルはTOFILE(*PRINT)のコーディングによって指示されます。

7: 物理ファイルから装置ファイル

CPYF   FROMFILE(PERSONNEL/PAYROLL)  TOFILE(DISK1)
       FROMMBR(VAC1)  INCCHAR(NAME 1 *CT SMITH)
       INCREL((*IF VAC *GT 10.5)(*AND HOLIDAYS *EQ 0))

このコマンドは,その姓がSMITHで,10.5日以上の累積休暇(休日ではない)をもつ従業員のすべての従業員レコードを,PERSONNELライブラリーのPAYROLLファイルからディスケットにコピーします。コピーされるファイル・メンバー名はVAC1です。休暇(VAC)と休日(HOLIDAYS)のフィールドはパック10進数として定義されますが,INCRELパラメーターには値は文字形式で指定されます。使用されるディスケット装置ファイルはDISK1であり,これには,コピー先のファイルのラベル,および位置やボリュームIDなどのその他のディスケット属性が入っています。

8: 物理ファイルから装置ファイル

CPYF   FROMFILE(PERSONNEL/PAYROLL)  TOFILE(DISK1)
       FROMMBR(*ALL)  TOMBR(*FROMMBR)

このコマンドは,PERSONNELライブラリー中のファイルPAYROLLのすべてのメンバーを,ディスケット(装置ファイルDISK1)のデータ・ファイルにコピーします。それぞれの取り出しファイルのメンバー名は有効なディスケット・ラベルIDでなければなりません。そうでない場合は,コピーする前に,RNMM(メンバーの名前変更)コマンドを使用して,取り出しファイルのメンバーの名前を変更してください。

エラー・メッセージ

*ESCAPE メッセージ

CPF2807
メッセージ&7に取り消し応答を受け取った。
CPF2816
エラーのために,&2のファイル&1はコピーされなかった。
CPF2817
エラーのために,コピー・コマンドが終了した。
CPF2818
TOMBRパラメーターに*FROMMBR値を使用することはできない。
CPF2835
INCCHARの開始桁および長さが長すぎる。
CPF2857
一時変更で,複数のメンバーまたはラベルのコピーを使用することはできない。
CPF2858
印刷出力のファイル属性が正しくない。
CPF2859
共用オープン・データ・パスを使用することはできない。
CPF2864
ライブラリー&2のファイル&1は認可されていない。
CPF2875
正しくないファイル・メンバーまたはラベルがオープンされた。
CPF2883
ライブラリー&2にファイル&1を作成中にエラー。
CPF2888
エラーのためにメンバー&3はファイルに追加されなかった。
CPF2904
複数のラベル・コピーのディスケット・ラベルが正しくない。
CPF2906
INCRELフィールドの値が正しくない。
CPF2909
&2のファイル&1のメンバー&3の消去中にエラー。
CPF2949
&2のファイル&1のメンバー&3のクローズ中にエラー。
CPF2952
ライブラリー&2のファイル&1のオープン中にエラー。
CPF2968
&2のファイル&1のコピー中に位置指定エラーが起こった。
CPF2971
ファイル&1のメンバー&3の読み取り中にエラー。
CPF2972
ファイル&1のメンバー&3への書き出し中にエラー。
CPF2975
キー付きファイルからの読み取り中にエラー。
CPF2976
エラーの数がERRLVL値より大きい。
CPF3140
メンバー&2の初期設定またはコピーが取り消された。
CPF3143
メンバー&2に増分値を使用することはできない。
CPF3148
新しいレコードのためにメンバー&2に必要なスペースが多すぎる。
CPF3150
メンバー&2のデータベース・コピーが正常に行われなかった。
CPF9212
&3のDDMファイル&2をロードまたはアンロードすることができない。