DBC (コピー) バッチ・コマンド
目的
ある Db2® オブジェクトから別の Db2® オブジェクトへのデータのコピーします。両方のオブジェクトが、現在接続されている Db2® システムからアクセス可能である必要があります。
使用
FM/Db2 コピー・ユーティリティーは、以下を実行できます。
- オプションで、データをコピーする前にターゲット表からすべての行を削除する。
- コピーする行と列を選択する。
- コピーする行の合計数を制限する。
- データの形式を 1 つ以上の新しい列に再設定する。
- 列を新しい値またはパターンで初期化する。
FM/Db2コピー・ユーティリティーは、ソース Db2® オブジェクトで定義されている参照整合性関係を考慮しません。
- OBJIN=location.owner.name
- ソース・オブジェクトがある Db2® リモート・サーバーの名前 (location、オプション)、ソース・オブジェクトの所有者の名前 (owner、オプション)、およびコピーされるソース・オブジェクトの名前 (name、オプション)。
location が指定されていない場合、現在の (ローカル) Db2® サーバーが使用されます。owner が指定されていない場合、オブジェクト名は現在の SQLID で修飾されます。FM/Db2 がユーティリティー制御ステートメントを生成する場合、owner 値は非ブランクです。
完全修飾名が JCL デックの単一行に納まる場合、OBJIN を使用してください。最後の使用可能列は列 71 です。完全修飾名が JCL デックの単一行に納まらない場合は、OBJILOCN、OBJIOWNR、OBJINAME キーワード (複数可) を使用して、オブジェクトを指定します。
- OBJILOCN=location
- ソース・オブジェクトがある Db2® リモート・サーバーの名前 (location、オプション)。Db2 オブジェクト名 の指定を参照してください。
- OBJIOWNR=owner
- コピーされるソース・オブジェクトの所有者の名前 (owner、オプション)。Db2 オブジェクト名 の指定を参照してください。
- OBJINAME=name
- コピーされるソース・オブジェクトのオブジェクト名 (name)。Db2 オブジェクト名 の指定を参照してください。
- NATIVE
- 2 つの Unicode でエンコードされた表間でデータをコピーする場合、FM/Db2 が Unicode エンコード・データをネイティブに処理するかどうかを指定します。Unicode データのデフォルト処理が必要な場合、このオプションを無視することができます。すなわち、Unicode 表間でデータをコピーする場合、Unicode データがエラー文字に置き換えられる可能性があります。
- YES
- Unicode データをネイティブに処理します。
- NO
- Unicode データをネイティブに処理しません。これは、デフォルトです。
- TINPUT=ddname
- コピーされるソース Db2® オブジェクトを記述した Db2® テンプレートが含まれているデータ・セットの DD ステートメントに対する参照を定義します。連結した DD を指定する場合は、メンバー名 (member) を TINMEM キーワードで指定する必要があります。Db2 オブジェクト用テンプレートの指定を参照してください。
- TINMEM=member
- コピーブックまたはテンプレート・メンバーが DD ステートメントで指定されていない場合に、TINPUT パラメーターによって識別されるデータ・セットのコピーブックまたはテンプレート・メンバーの名前。TMIN パラメーターが指定されている場合、このパラメーターを指定することはできません。Db2 オブジェクト用テンプレートの指定を参照してください。
- TMIN=template_data_set_name(member)
- コピーされるソース Db2® オブジェクトを記述した File Manager Db2® テンプレートの PDS (template_data_set_name) とメンバー名 (member)。Db2 オブジェクト用テンプレートの指定を参照してください。
- OBJOUT=location.owner.name
- ターゲット・オブジェクトがある Db2® リモート・サーバーの名前 (location、オプション) 、ターゲット・オブジェクトの所有者の名前 (owner、オプション)、およびコピーされるターゲット・オブジェクトの名前 (name)。
location が指定されていない場合、現在の (ローカル) Db2® サーバーが使用されます。owner が指定されていない場合、オブジェクト名は現在の SQLID で修飾されます。FM/Db2 がユーティリティー制御ステートメントを生成する場合、owner 値は非ブランクです。
完全修飾名が JCL デックの単一行に納まる場合、OBJOUT を使用してください。最後の使用可能列は列 71 です。完全修飾名が JCL デックの単一行に納まらない場合は、OBJOLOCN、OBJOOWNR、OBJONAME キーワード (複数可) を使用して、オブジェクトを指定します。
- OBJOLOCN=location
- ターゲット・オブジェクトがある Db2® リモート・サーバーの名前 (location、オプション)。Db2 オブジェクト名 の指定を参照してください。
- OBJOOWNR=owner
- コピーされるターゲット・オブジェクトの所有者の名前 (owner、オプション)。Db2 オブジェクト名 の指定を参照してください。
- OBJONAME=name
- コピーされるターゲット・オブジェクトのオブジェクト名 (name)。Db2 オブジェクト名 の指定を参照してください。
- TOUTPUT=ddname
- ターゲット Db2® オブジェクトを記述した Db2® テンプレートが含まれているデータ・セットの DD ステートメントに対する参照を定義します。連結した DD を指定する場合は、メンバー名 (member) を TOUTMEM キーワードで指定する必要があります。Db2 オブジェクト用テンプレートの指定を参照してください。
- TOUTMEM=member
- コピーブックまたはテンプレート・メンバーが DD ステートメントで指定されていない場合に、TOUTPUT パラメーターによって識別されるデータ・セットのコピーブックまたはテンプレート・メンバーの名前。このパラメーターは、TMOUT パラメーターが指定されている場合は、指定しないでください。Db2 オブジェクト用テンプレートの指定を参照してください。
- TMOUT=template_data_set_name(member)
- ターゲット Db2® オブジェクトを記述した FM/Db2 テンプレートの PDS (template_data_set_name) とメンバー名 (member)。Db2 オブジェクト用テンプレートの指定を参照してください。
- UCREAD
- FM/Db2 がソース・オブジェクトにアクセスするときに、非コミット読み取りを使用するかどうかを指定します。
- YES
- 非コミット読み取りを使用します。この場合、Db2® はソース表のデータにアクセスするときにロックを行わないため、FM/Db2 に読み取られた後で行のデータが変わり、データの不整合が発生する可能性があります。
- NO
- 非コミット読み取りを使用しません。これは、デフォルトです。
- ロック
- データをコピーする前に、ソース表をロックするかどうかを指定します。使用できるオプションは、次のとおりです。
- なし
- デフォルトの推奨値です。UCREAD=YES で否定されていない限り、Db2® インストール・オプションとソース・オブジェクトの作成時に指定されたオプションに従って、Db2® がロックを行います。
- 共有
- FM/Db2 は、データをコピーする前に、SHARE モードでソース・オブジェクトをロックします。このオプションは表に対してのみ有効で、ソース・オブジェクトがビューの場合は効果がありません。オブジェクトが SHARE モードでロックされている場合、他のユーザーがそのオブジェクトを読み取ることはできますが、更新することはできません。
- EXCL
- FM/Db2 は、データをコピーする前に、EXCLUSIVE モードでソース・オブジェクトをロックします。このオプションは表に対してのみ有効で、ソース・オブジェクトがビューの場合は効果がありません。オブジェクトが EXCLUSIVE モードでロックされている場合、非コミット読み取りを使用する場合を除き、他のユーザーはそのオブジェクトにアクセスできません。
- DUPKEY
- FM/Db2 が重複キー・エラーにどのように対応するかを指定します。
- IGNORE
- FM/Db2 はエラーを無視し、処理を続行します。重複キー・エラーの原因になった行は、ターゲット Db2® オブジェクトにコピーされません。
- UPDATE
- FM/Db2 は既存の行の更新を試みます。SQLCODE-803 エラーの原因になった固有索引の一部である表の列が、行の識別に使用されます。更新操作の前には、コピーされた行と既存の行の間で比較は行われません (すなわち、更新は、 コピーされた行と既存の行が同じかどうかに無関係に行われます)。ターゲット表で複数の固有索引が定義されている場合は、更新を試みたときに SQLCODE-803 が発生する可能性があります。これは、更新エラーと見なされます。
- DUPMAX
- FM/Db2 がインポート処理を終了するまで許可される重複キー・エラーの数。
- ALL または 0
- 制限なし。
- num
- 許可される重複キー・エラーの数。最大で 2147483647 です。
- REFI
- チェック制約違反で発生するエラー (SQLCODE-545) を無視するかどうかを指定します。デフォルトは REFI=FAIL で、チェック制約エラーが発生した場合はコピー処理を終了します。そうでない場合 (REFI=IGNORE)、チェック制約エラーは無視されます。
- 監査
- FM/Db2 が FM/Db2 監査ログにレコードを書き込むかどうかを指定します。
- YES
- FM/Db2 監査ログにレコードを書き込む。これは、デフォルトです。
- NO
- FM/Db2 監査ログにレコードを書き込まない。
- DELROWS
- FM/Db2 が、コピー操作を開始する前にターゲット表のすべての行の削除を試行するかどうかを指定します。
- YES
- すべての行の削除を試行します。
- NO
- 行を削除しません。これは、デフォルトです。
- ROWS
- コピーする行の最大数。
- ALL
- ソース・オブジェクトのすべての行がターゲット・オブジェクトに書き込まれます。
- num
- コピーする行の最大数。有効範囲: 1-99999999.
例(X)
例 1: DSN8810.EMP 表をリモート・ロケーションにコピーします。データをコピーする前にターゲット表内の行すべてを削除します。DSN8810.EMP にアクセスするときは、非コミット読み取りを使用します。DSN8810.EMP へのアクセスを監査します。
//DBC JOB (acct),'name'
//* Copy DSN8810.EMP table to the same table at a remote location
//*
//FMNDB2 EXEC PGM=FMNDB2,PARM=('SSID=DSN1,SQID=ID1')
//STEPLIB DD DSN=FMN.SFMNMOD1,DISP=SHR
// DD DSN=DB2V810.DSN1.SDSNEXIT,DISP=SHR
// DD DSN=DB2.V810.SDSNLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//FMNTSPRT DD SYSOUT=*
//SYSTERM DD SYSOUT=*
//SYSIN DD *
$$FILEM DBC OBJIN="DSN8810"."EMP",
$$FILEM OBJOUT=REMLOC."DSN8810"."EMP",
$$FILEM UCREAD=YES,
$$FILEM LOCK=NONE,
$$FILEM DUPKEY=IGNORE,
$$FILEM DUPMAX=ALL,
$$FILEM REFI=FAIL,
$$FILEM AUDIT=YES,
$$FILEM DELROWS=YES,
$$FILEM ROWS=ALL
/*
Example 2: DSN8810.EMP 表を DSN8COPY.EMP にコピーします。重複キー・エラーを生成したターゲット表の行を更新します。重複キー・エラーは、最大で 100 件とします。
//DBC JOB (acct),'name'
//* Copy DSN8810.EMP table to a copy of the same table.
//*
//FMNDB2 EXEC PGM=FMNDB2,PARM=('SSID=DSN1,SQID=ID1')
//STEPLIB DD DSN=FMN.SFMNMOD1,DISP=SHR
// DD DSN=DB2V810.DSN1.SDSNEXIT,DISP=SHR
// DD DSN=DB2.V810.SDSNLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//FMNTSPRT DD SYSOUT=*
//SYSTERM DD SYSOUT=*
//SYSIN DD *
$$FILEM DBC OBJIN="DSN8810"."EMP",
$$FILEM OBJOUT="DSN8COPY"."EMP",
$$FILEM LOCK=NONE,
$$FILEM DUPKEY=UPDATE,
$$FILEM DUPMAX=100,
$$FILEM REFI=FAIL,
$$FILEM ROWS=ALL
/*
戻りコード
DBC 関数からの戻りコードは次のとおりです。
- 0
- 関数の処理が正常に完了しました。
- 16
- 重大なエラーが発生しました。
関連機能
- DBI
- 順次ファイルまたは VSAM ファイルから Db2® 表へのデータのインポート (DBI (インポート) バッチ・コマンド)
- DBX
- Db2® オブジェクトから順次ファイルまたは VSAM ファイルへのデータのエクスポート (DBX (エクスポート) バッチ・コマンド)
- D2G
- Db2® データの作成 (生成) (D2G (データ生成) バッチ・コマンド)