DBI (インポート) バッチ・コマンド
目的
QSAM または VSAM ファイルから Db2® オブジェクトに、さまざまな形式でデータをインポートします。Db2® オブジェクトは、現在接続されている Db2® システムからアクセス可能である必要があります。
使用
FM/Db2 インポート・ユーティリティーでは以下のことができます。
- オプションで、データをインポートする前にターゲット表からすべての行を削除する。
- インポートするレコードの数を制限する。
- インポートするレコードを選択する。
- 適切なデータ・タイプと長さの変換を行い、インポート・データ・セットのフィールドをターゲット表の列にマップする (テンプレート・マッピングを使用)。
- インポートされた行の固有索引列の値が既存の表の行と一致する場合に、既存の行を更新する (オプション)。
マップ済みおよび変換済みのデータを、ターゲット Db2® 表に挿入する前に変更するために、インポートの最中に REXX プロシージャーを使用できます。この時点では、すべての REXX 関数を使用でき、REXX プロシージャーを用いてレコードを除外するか、インポートを停止できます。
インポート処理の最後に、次の統計情報が表示されます。
- 正常にインポートされた行の数。
- 重複行エラーの数。
- 更新された重複行の数 (オプション)。
- 失敗した重複行更新の数 (オプション)。
- エラーが発生した行の数。
- テンプレート選択によってスキップされた行の数。
- REXX プロシージャーで除外された行の数。
- DSNIN=data_set_name
- インポートされるデータを含んでいるデータ・セットの名前。データ・セットが区分されている場合は、メンバー名が必要です。
- VOLSER=volume_serial_number
- 入力データ・セットのボリューム通し番号。このフィールドは、アンカタログされたデータ・セットにだけ必要です。
- TINPUT=ddname
- 入力データのレコード構造を記述したテンプレート・メンバーが含まれているデータ・セットの DD ステートメントに対する参照を定義します。デフォルトは、TDDIN です。
- TINMEM=member
- コピーブックまたはテンプレート・メンバーが DD ステートメントで指定されていない場合に、TINPUT パラメーターによって識別されるデータ・セットのコピーブックまたはテンプレート・メンバーの名前。TCIN パラメーターが指定されている場合、このパラメーターを指定することはできません。
- TCIN=template/copybook_data_set_name(member)
- インポートされるデータのレコード構造を記述したテンプレートまたはコピーブックの PDS (template/copybook_data_set_name) とメンバー名 (member)。FM/Db2 が生成する JCL では TCIN が指定されます。データ・セット用テンプレート/コピーブックの指定を参照してください。
- 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 オブジェクト用テンプレートの指定を参照してください。
- UPDATE
- FM/Db2 が、SQLCODE-803 (重複キー) エラーを生成した行の更新を試行するかどうかを指定します。
- YES
- FM/Db2 は既存の行の更新を試みます。表内の列のうち、少なくとも 1 つの固有索引の一部である列のすべてが行の識別に使用されます。更新操作の前には、インポートされた行と既存の行の間で比較は 行われません (すなわち、更新は、インポートされた行と既存の行が同じかどうかに 無関係に行われます)。このオプションを使用するときは、ビュー名ではなく、Db2® 表名を指定することをお勧めします。FM/Db2 は、ビューに定義されたビュー内の既存の行の更新は試みません。
- NO
- 行は更新されません。これは、デフォルトです。
- AUTOCOMMIT=value
- FM/Db2 がインポート時に Db2® コミットを発行する頻度を示す数値を指定します。デフォルトはゼロです。ゼロは、インポート操作時に Db2® コミットが発行されないことを意味します。任意の正値を指定すると、インポート時にその値の回数の変更が正常に行われた後、FM/Db2 は Db2® コミットを発行します。変更が正常に行われるのは、レコードが正常に挿入されるとき、またはレコードの挿入を試行した結果、重複キー・エラーになった後で行が正常に更新されるときのどちらかです。各 Db2® コミットが発行された後、カウンターがリセットされるので、複数の Db2® コミットが発行される場合があります。インポート時にエラーが発生するときに、1 つ以上の Db2® コミットが発行されていた場合、最後の Db2® コミット点の次に行われた変更のみがバックアウトされます。
- STARTPOS=position
- インポートの開始レコードを示す数値を指定します。デフォルトは 1 です。これは、FM/Db2 がインポート・ファイルの最初のレコードからインポートが開始することを意味します。1 より大きい任意の値を指定すると、FM/Db2 は position-1 のレコードをスキップしてから、インポートを開始します。
- DUPMAX
- FM/Db2 がインポート処理を終了するまで許可される重複キー・エラーの数。
- ALL または 0
- 制限なし。
- num
- 許可される重複キー・エラーの数。最大で 2147483647 です。
- DELROWS
- FM/Db2 が、コピー操作を開始する前にターゲット表のすべての行の削除を試行するかどうかを指定します。
- YES
- すべての行の削除を試行します。
- NO
- 行を削除しません。これは、デフォルトです。
- ROWS
- インポートするレコードの最大数。
- ALL
- インポート・データ・セットのすべてのレコードがターゲット・オブジェクトに挿入されます。
- num
- インポートするレコードの最大数。有効範囲: 1-99999999.
- PROC
- REXX プロシージャー。
- procname
- インポート・レコードを処理するときに使用する REXX プロシージャーの名前。
- *
- インライン・プロシージャー。* の後ろに 1 つ以上の REXX プロシージャー・ステートメントを記述し、「/+.」で終了します。
- CSV インポート・オプション
-
- CSVIMP
- デフォルトは NO です。テンプレートを使用して CSV データをインポートする場合は、CSVIMP=YES を指定します。
- CSVIHDR
- デフォルトは NO です。インポートする CSV データ・セットに見出しが含まれている場合は、YES を指定します。
- CSVIDBCS
- デフォルトは NO です。インポートする CSV データ・セットに、シフトイン (x'0E') およびシフトアウト (x'0F') 文字で囲まれた 2 バイト・データ (DBCS) 文字が含まれている場合は、YES を指定します。
- CSVISNGL
- デフォルトは NO です。インポートする CSV データ・セットに一重引用符によるカプセル化がある場合は、YES オプションを指定します。
- CSVIDLM=delimiter
- デフォルトはコンマ「,」文字です。このキーワードを使用して、コンマ「,」文字の代わりの区切り文字を指定します。
- NULLIND=character
- このキーワードを使用して、CSV 入力データ・セットでヌル値を表すために使用されたヌル標識値を指定します。対応する CSV 値に次が含まれる場合は、ヌル可能列がヌルに設定されます。
- ブランク以外のヌル標識値。
- ヌルの CSV 値。例えば、2 つの連続する区切り文字「,,」などです。
例(X)
例 1: 順次ファイルから DSN8810.EMP にデータをインポートします。データをインポートする前に、DSN8810.EMP のすべての行を削除します。
//DBI JOB (acct),'name'
//* Import data from a sequential file into DSN8810.EMP.
//* Delete all the rows from the table before importing the data.
//*
//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 DBI DSNIN=ID1.EXPORT.EMP.EXAMPLE1,
$$FILEM TCIN=ID1.FM.TEMPLATE(EMP),
$$FILEM OBJOUT="DSN8810"."EMP",
$$FILEM UPDATE=NO,
$$FILEM DUPMAX=ALL,
$$FILEM DELROWS=YES,
$$FILEM ROWS=ALL
/*
Example 2: 順次ファイルから DSN8810.EMP にデータをインポートします。REXX プロシージャー PROC1 を使用して、レコードを挿入する前に、順次ファイルの各レコードを処理します。重複キー・エラーを発生させた行を更新します。重複キー・エラーは、最大で 50 件までとします。
//DBI JOB (acct),'name'
//* Import data from a sequential file into DSN8810.EMP.
//*
//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=*
//FMNEXEC DD DSN=ID1.EXEC,DISP=SHR
//SYSIN DD *
$$FILEM DBI DSNIN=ID1.EXPORT.EMP.EXAMPLE1,
$$FILEM TCIN=ID1.FM.TEMPLATE(EMP),
$$FILEM OBJOUT="DSN8810"."EMP",
$$FILEM UPDATE=YES,
$$FILEM DUPMAX=50,
$$FILEM DELROWS=NO,
$$FILEM ROWS=ALL,
$$FILEM PROC=PROC1
/*
戻りコード
DBI 関数からの戻りコードは次のとおりです。
- 0
- 関数の処理が正常に完了しました。
- 16
- 重大なエラーが発生しました。
関連機能
- DBC
- ある Db2® オブジェクトから別のオブジェクトへのデータのコピー (DBC (コピー) バッチ・コマンド)
- DBX
- Db2® オブジェクトから順次ファイルまたは VSAM ファイルへのデータのエクスポート (DBX (エクスポート) バッチ・コマンド)
- D2G
- Db2® データの作成 (生成) (D2G (データ生成) バッチ・コマンド)