RDBMerge - Merge文の実行

RDBMSのテーブルに対してMerge文を実行します。

■ストリーム情報

入力フォーマットRecord
接続数1
説明 入力ストリームのフィールド定義を専用の設定画面で行います。
このフィールド定義は直前に連結したマッパーの出力ストリームのフィールド定義にコピーされ、そこに対して値のマッピングを行います。
出力フォーマットRecord
説明 入力ストリームをそのまま出力します。

■コンポーネントプロパティ

名前プロパティ型マッピング説明
コネクション名connection- 接続先のRDBを指定します。 コネクションペインまたは管理コンソールにて作成されたRDB接続名を選択します。
テーブル名string入力&出力 更新対象のテーブル名を指定します。
値フィールドをクリックすると、テーブル名とフィールドの設定画面が表示されます。ここでフィールド定義を行うことによってテーブル名が自動で設定されます。設定画面については、下記トピック「テーブル名とフィールドの設定」を参照してください。
バッチ処理件数int- バッチ処理で一度に送信するレコード件数を設定します。
処理件数int   出力 実際に更新されたレコード件数が取得できます。
タイムアウト(秒)int入力&出力 RDBMSへ更新文を発行してから結果が返ってくるまでの待ち時間を秒単位で指定します。
指定時間を経過しても実行が終わらない場合は汎用 となります。
0の場合はタイムアウトすることはありません。
入力category- 入力ストリームのフィールド定義を行います。
種別にはMerge文においてその項目をどのように扱うかを指定します。
テーブルのキーとなるカラムでは「キー」を指定します。
Insert時のみ使用する項目では「Insertのみ」を指定します。
Update時のみ使用する項目では「Updateのみ」を指定します。

■トランザクション処理

コミットRDBMSをコミットします。
ロールバックRDBMSをロールバックします。

■エラー処理

タイプパラメーターエラー処理フロー
へのストリーム
エラー
コード
説明
汎用 なし コンポーネントの入力ストリーム なし コネクション名 に指定したコネクションが見つからない場合
データベースベンダー固有の例外コードテーブルまたはフィールドが見つからない場合
データベースベンダー固有の例外コードSQLの実行に失敗した場合
接続エラー なし コンポーネントの入力ストリーム なし DBMSとの接続に失敗した場合

■フローの強制終了

フローを強制終了すると、通常は実行中のコンポーネントの処理が終了してから次のコンポーネントに制御が遷移する時点でフローがアボートしますが、本コンポーネントでは実行中の処理を強制的に終了してフローがアボートします。

■Merge処理について

本コンポーネントではDBMS固有のMerge構文を利用することで高速挿入を実現しています。

処理内容としてはRDBPutコンポーネントの「Update/Insert」(または「Insert/Update」) モードと同等ですが、本コンポーネントを使用することで以下の優位性があります。

本コンポーネントで使用可能なDBMSは以下の通りです。

ただしDBMSのサーバーバージョンが上記に該当する場合でもJDBCドライバーが古いバージョンの場合は正しく動作しないことがあります。
ご利用の際には必ず動作確認を行い、動作に支障がある場合はRDBPutコンポーネントをご使用ください。

■テーブルとフィールドの設定

RDBMSのテーブルに対して処理するテーブルとフィールドの選択は、専用のダイアログボックスから行います。 ダイアログボックスから選択すると、インスペクタの入力タブに処理対象フィールドとして表示されます。
種別の設定は、専用のダイアログボックスでフィールドを選択してから、インスペクタで行います。
表示名に値を設定することでテーブル上の実際のカラム名とストリーム定義で使用するフィールド名を別にすることができます。

●定義画面を表示する

定義画面を表示するには、以下のいずれかの操作を行います。

●読み込むテーブルを指定する

定義画面を表示すると(1)にテーブルの一覧が表示されます。テーブルを指定すると、(3)(5)に情報が表示されます。

●処理対象フィールドを指定する

テーブルを指定すると、(5)にテーブルのフィールド一覧が表示されます。初期状態では、すべてのフィールドが処理対象になるように(4)のチェックボックスがオンになっています。

フィールドを選択して「OK」をクリックすると、インスペクタの入力タブにフィールド一覧が表示されます。
表示名に値を設定することでテーブル上の実際のカラム名とストリーム定義で使用するフィールド名を別にすることができます。