ストリーム・ファイルからのコピー (CPYFRMSTMF)

ストリーム・ファイルからのコピー (CPYFRMSTMF)コマンドは,ストリーム・ファイルのデータをデータベース・ファイル・メンバーまたは保管ファイルにコピーします。データベース・ファイル・メンバーをコピーする時に,オプションのデータの変換および形式変更が実行されます。このコマンドを使用して,リモート・システムとの間でデータベース・ファイル・メンバーをコピーすることはできません。データベース・ファイル・メンバーまたは保管ファイルに有効な指定変更は,このコマンドでは使用されません。

このコマンドは,通常のファイルおよび/DEV/NULL文字特殊ファイルで操作することができます。通常のファイルとは,統合ファイル・システム入出力(I/O)操作のオープン,読み取り,および書き込みをサポートするファイルをいいます。

統合ファイル・システム・コマンドの詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「統合ファイル・システム」トピック・コレクションを参照してください。

注: 作成されたデータベース・ファイル・メンバーの順序番号が違っている場合があります。順序番号の並べ替えを必要とする機能を使用する場合には,SRCOPT(*SEQNBR)パラメーターを指定して,メンバーの物理ファイル・メンバー再編成(RGZPFM)コマンドを使用してください。

制約事項:

パラメーター

キーワード 記述 選択項目 ノーツ
FROMSTMF FROMストリーム・ファイル パス名 必須, 定位置 1
TOMBR TO ファイル・メンバーか保管ファイル パス名 必須, 定位置 2
MBROPT メンバー・オプション *NONE, *ADD, *REPLACE オプショナル
CVTDTA データ変換オプション: *AUTO, *TBL, *NONE オプショナル
STMFCCSID ストリーム・ファイルのCCSID 1-65533, *STMF, *PCASCII オプショナル
DBFCCSID データベース・ファイルCCSID 1-65533, *FILE オプショナル
TBL 変換テーブル パス名 オプショナル
ENDLINFMT 行の終わり文字 *ALL, *CRLF, *LF, *CR, *LFCR, *FIXED オプショナル
TABEXPN タブ拡張文字 *YES, *NO オプショナル
STMFCODPAG ストリーム・ファイル・コード・ページ 1-32767, *STMF, *PCASCII オプショナル

FROMストリーム・ファイル (FROMSTMF)

データのコピー元のストリーム・ファイルのパス名を指定します。このコマンドは,タイプ*STMFおよび/DEV/NULL文字特殊ファイルで操作することができます。

パス名を指定するときの詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクション の「オブジェクトの命名規則」を参照してください。

注: このパラメーターではUNICODEが使用可能です。詳しくは,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクションで「CLでのUNICODEサポート」を参照してください。

TO ファイル・メンバーか保管ファイル (TOMBR)

データのコピー先のデータベース・ファイル・メンバーまたは保管ファイルのパス名を指定します。パス名のすべてのディレクトリーが存在しなければなりません。

保管ファイルにコピーする時に,保管ファイルが存在していなければ作成されます。

データベース・ファイル・メンバーにコピーする時には,データベース・ファイルが存在しなければなりません。メンバーが存在しない場合には作成されます。ファイルはソース物理ファイルまたはプログラム記述物理ファイルのいずれかになります。複数のデータ・フィールドをもつソース物理ファイルはサポートされていません。

データベース・ファイルがソース物理ファイルであった場合には,レコードがデータベース・ファイル・メンバーにコピーされた時に,順序番号および日付がゼロとして各レコードに追加されます。

パス名を指定するときの詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクション の「オブジェクトの命名規則」を参照してください。

注: このパラメーターではUNICODEが使用可能です。詳しくは,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクションで「CLでのUNICODEサポート」を参照してください。

メンバー・オプション (MBROPT)

TO ファイル・メンバーか保管ファイル (TOMBR)パラメーターで指定されたオブジェクトが既に存在している場合には,コピー操作で置き換えるか,追加するか,あるいは失敗させるかを指定します。オブジェクトが存在していない場合には,それが作成されます。

*NONE
オブジェクトが存在している場合には,レコードはコピーされず,操作は失敗します。
*ADD
コピーされたレコードは,既存のレコードの終わりに追加されます。
*REPLACE
コピーされたレコードは,既存のレコードを置き換えます。

データ変換オプション: (CVTDTA)

データをストリーム・ファイルからデータベース・ファイル・メンバーに変換するための処理を指定します。

このパラメーターは,保管ファイルにコピーする時には無視されます。

*AUTO
データは,コピー操作の実行中に,ストリーム・ファイルのコード化文字セットID (CCSID)およびデータベース・ファイルのCCSIDを使用して変換されます。
*TBL
データは,変換テーブルを使用して変換されます。1バイト文字セットだけがサポートされています。変換テーブルは,変換テーブル (TBL)パラメーターで指定しなければなりません。
*NONE
ソース物理ファイルへの順序番号および日付の挿入と,指定された行形式設定文字のストリーム・ファイルからのオプションの除去だけが実行されます。その他の文字のストリーム・ファイルのCCSIDからデータベース・ファイルのCCSIDへの変換は実行されません。

ストリーム・ファイルのCCSID (STMFCCSID)

データ変換に使用するストリーム・ファイルのコード化文字セットID (CCSID)を入手する方法を指定します。

このパラメーターは,保管ファイルをコピーする時か,またはCVTDTA(*TBL)あるいはCVTDTA(*NONE)が指定された時には無視されます。

このパラメーターは, ストリーム・ファイル・コード・ページ (STMFCODPAG)パラメーターと一緒に指定できません。

*STMF
FROMストリーム・ファイル (FROMSTMF)パラメーターに指定されたストリーム・ファイルに関連付けられたCCSIDが,データ変換に使用されます。
*PCASCII

Microsoft Windowsエンコード・スキーム(X4105)のCCSIDを計算するために, FROMストリーム・ファイル (FROMSTMF)パラメーターに指定されたストリーム・ファイルに関連付けられたCCSIDを使用します。データ変換が必要な場合には,このCCSIDが使用されます。データがMicrosoft Windowsを使用して作成された場合には,このオプションによりデータを適切に変換できます。("MICROSOFT"および"Windows"はMicrosoft Corporationの商標です。)

例えば,ストリーム・ファイルと関連したCCSIDが37の場合には,ストリーム・ファイル・データはデータ変換のCCSID 1252にあると見なされます。

1から65533
データ変換に使用するストリーム・ファイルCCSIDを指定します。

データベース・ファイルCCSID (DBFCCSID)

データ変換に使用されるデータベース・ファイルのCCSIDを入手する方法を指定します。

このパラメーターは,保管ファイルにコピーする時には無視されます。

*FILE
データベース・ファイルのCCSIDが65535でなければ,それが使用されます。データベース・ファイルのCCSIDが65535で,ファイルがプログラム記述ファイルでない場合には,操作は失敗します。データベース・ファイルのCCSIDが65535で,ファイルがプログラム記述ファイルの場合には,省略時のジョブCCSIDが使用されます。
1から65533
データベース・ファイルのコード化文字セットID (CCSID)を指定してください。このオプションは,データベース・ファイルのCCSIDが65535であるか,または指定されたCCSIDと同じであった場合にだけ有効です。そうでない場合には,操作は正常に実行されません。

変換テーブル (TBL)

ストリーム・ファイルからデータベース・ファイル・メンバーへのデータの変換に使用される変換テーブルのパス名を指定します。

注: このパラメーターは必須であり,有効となるのはCVTDTA(*TBL)が指定された場合だけです。このパラメーターは,保管ファイルにコピーする時には無視されます。

パス名を指定するときの詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクション の「オブジェクトの命名規則」を参照してください。

注: このパラメーターではUNICODEが使用可能です。詳しくは,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクションで「CLでのUNICODEサポート」を参照してください。

行の終わり文字 (ENDLINFMT)

レコードのコピー時にストリーム・ファイル内で認識される行の終わり文字を指定します。

このパラメーターは,保管ファイルにコピーする時には無視されます。

レコードがデータベース・ファイルにコピーされた時には,すべてのレコードが固定長様式に変換されます。この固定長は,レコードがコピーされる先のデータベース・ファイル・レコードの長さと等しくなります。行の終わり文字オプションの1つが選択された(ENDLINFMT(*FIXED)が指定されない)場合には,ストリーム・ファイルはその文字の最初のオカレンスまで読み取られます。行の終わり文字はレコードから取り除かれます。レコードの残りの部分にはブランクが埋め込まれます。データは,宛先データ形式に変換され(それが指定された場合),データベース・ファイル・メンバーにコピーされます。レコードが長すぎて固定長様式では入り切らない場合は,切り捨てられてからコピーされます。

*ALL
改行および行送りの単一または二重文字の組み合わせが各行の終わりに付加されます。
*CRLF
改行に続いて行送りが各行の終わりに付加されます。
*LF
行送りが各行の終わりに付加されます。
*CR
改行が各行の終わりに付加されます。
*LFCR
行送りに続いて改行が各行の終わりに付加されます。
*FIXED
ストリーム・ファイルのテキスト行は,コピー先のデータベース・ファイルのレコードと同じ長さの固定長レコードとみなされます。見つかったCR, LF,またはEOF文字は,いずれもストリーム・ファイルからは取り除かれません。タブ拡張は許可されず,タブ拡張文字 (TABEXPN)パラメーターは無効です。ストリーム・ファイルの最後のレコードでデータベース・ファイル・レコードが充てんされない場合には,そのレコードにブランクが埋め込まれます。

CVTDTA(*AUTO)が指定された場合は,変換されたデータは圧縮または展開することができません。そのため,ストリーム・ファイルCCSIDとデータベース・ファイルCCSIDのエンコード・スキームは互換性がなければなりません。例えば,ストリーム・ファイルが1バイト・エンコード・スキームで,データベース・ファイルが2バイト・エンコード・スキームの場合は,コマンドが失敗します。

タブ拡張文字 (TABEXPN)

組み込みタブ文字を次の8文字のタブ位置までブランクで拡張するかどうかを指定します。

このパラメーターは,保管ファイルにコピーする時には無視されます。

*YES
タブ文字は,データベース・ファイル・メンバーにコピーされません。見つかったタブ文字は,すべて次のタブ位置までブランクで拡張されます。

注: ENDLINFMT(*FIXED)を指定した場合には,*YESはこのパラメーターに有効な値ではありません。

*NO
タブ文字は,データベース・ファイル・メンバーにコピーされません。タブ拡張は起こりません。

ストリーム・ファイル・コード・ページ (STMFCODPAG)

データ変換に使用するストリーム・ファイルのコード化文字セットID (CCSID)を決定するために使用するコード・ページ値を指定します。

このパラメーターは,保管ファイルにコピーする時には無視されます。

このパラメーターは,ストリーム・ファイルのCCSID (STMFCCSID)パラメーターと一緒に使用できません。

注: このパラメーターはSTMFCCSIDで置き換えられますが,今まで通りSTMFCODPAGパラメーターを使用することができます。ただし,このパラメーターは後のリリースで除去される可能性があるため,可能であればSTMFCCSIDパラメーターを使用してください。

*STMF
この値を指定した場合には,コード・ページ処理は行われません。 FROMストリーム・ファイル (FROMSTMF)パラメーターに指定したストリーム・ファイルのCCSIDが,データ変換に使用されます。
*PCASCII

Microsoft Windowsエンコード・スキーム(X4105)のCCSIDを計算するために, FROMストリーム・ファイル (FROMSTMF)パラメーターに指定されたストリーム・ファイルに関連付けられたCCSIDを使用します。データ変換が必要な場合には,このCCSIDが使用されます。データがMicrosoft Windowsを使用して作成された場合には,このオプションによりデータを適切に変換できます。("MICROSOFT"および"Windows"はMicrosoft Corporationの商標です。)

例えば,ストリーム・ファイルと関連したCCSIDが37の場合には,ストリーム・ファイル・データはデータ変換のCCSID 1252にあると見なされます。

1から32767
ストリーム・ファイルのコード・ページを指定してください。その後,データ変換に使用されるストリーム・ファイルCCSIDを計算するために,この値が使用されます。

1:自動変換を使用したストリーム・ファイルからデータベース・ファイルへのデータのコピー

CPYFRMSTMF   FROMSTMF('STMF.TXT')
             TOMBR('/QSYS.LIB/MYLIB.LIB/MYFILE.FILE/MYMBR.MBR')

このコマンドは,現行作業ディレクトリーのストリーム・ファイルSTMF.TXTに入っているデータをデータベース・ファイルのメンバー/QSYS.LIB/MYLIB.LIB/MYFILE.FILE/MYMBR.MBRにコピーします。データの自動変換は,ストリーム・ファイル・データのCCSIDとデータベース・ファイルのCCSIDを使用して行われます。CRとLFの1バイトまたは2バイト文字の組み合わせは,ストリーム・ファイルの行の終わりとして認識され,組み込みタブは次のタブ位置までブランクを埋めて拡張されます。これらが省略時の値であるためです。メンバーMYMBR.MBRがファイルに存在しない場合には,それが作成されます。メンバーMYMBR.MBRが存在する場合には,MBROPT(*NONE)が省略時の値であるため,レコードはコピーされません。

2:変換テーブルを使用したストリーム・ファイルからデータベース・ファイルへのデータのコピー

CPYFRMSTMF   FROMSTMF('FINANCE.NEW')
             TOMBR('/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR')
             CVTDTA(*TBL)  STMFCCSID(437)
             TBL('/QSYS.LIB/QUSRSYS.LIB/TBL1.TBL')
             ENDLINFMT(*CRLF)  TABEXPN(*NO)

このコマンドは,現行作業ディレクトリーのストリーム・ファイルFINANCE.NEWに入っているデータをデータベース・ファイルのメンバー/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBRにコピーします。ストリーム・ファイルのデータは,ディレクトリー/QSYS.LIB/QUSRSYS.LIBに入っているユーザー指定の変換テーブルTBL1.TBLを使用して変換されます。CRとLFの2バイト文字の組み合わせは,ストリーム・ファイルの行の終わりとして認識されます。組み込みタブは,ブランクで拡張されません。認識される行形式設定文字は,STMFCCSIDパラメーターに指定されたCCSID 437で表現されるCRおよびLFのペアのみです。

3:データ変換なしのストリーム・ファイルからデータベース・ファイルへのデータのコピー

CPYFRMSTMF   FROMSTMF('FINANCE.NEW')
             TOMBR('/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR')
             CVTDTA(*NONE)  ENDLINFMT(*FIXED)

このコマンドは,現行作業ディレクトリーのストリーム・ファイル'FINANCE.NEW'に入っているデータを,データ変換なしでデータベース・ファイルのメンバー/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBRにコピーします。ストリーム・ファイル・データの各行は,データベース・レコードと同じ長さの固定長のレコードとみなされます。TABEXPN(*NO)が指定されているので,見つかったタブ文字はコピー中にブランクには拡張されません。ストリーム・ファイルとデータベース・ファイルのエンコード・スキームに互換性がない場合には,コピーは終了してエラー・メッセージが出されます。

4:ストリーム・ファイルから保管ファイルへのデータのコピー

CPYFRMSTMF   FROMSTMF('/MYDIR/SOFTWARE')
             TOMBR('/QSYS.LIB/PACKAGE.LIB/SOFTWARE.FILE')

このコマンドは,ストリーム・ファイル/MYDIR/SOFTWAREに入っているデータを保管ファイル/QSYS.LIB/PACKAGE.LIB/SOFTWARE.FILEにコピーします。ストリーム・ファイル・データは,長さが528の固定長レコードとしてコピーされます。行形式設定文字は挿入されず,データ変換も実行されません。

エラー・メッセージ

*ESCAPE メッセージ

CPFA085
ユーザー&1のホーム・ディレクトリーが見つからなかった。
CPFA095
ストリーム・ファイルはコピーされなかった。