CData コネクタは非推奨です。他のデータベースコネクタとは異なり、Mapping モードをサポートしていないため、Upsert アクションのカラムマッピングには引き続きXML Map コネクタが必要です。
テーブルとカラム
CData コネクタでUpsert を選択する場合は、CData から対象のテーブル(1つまたは複数)を選択する必要があります。Tables ペインの上にあるAdd ボタンをクリックします。


Add をクリックしてこのプロセスを繰り返すことで、さらにテーブルを選択できます。詳細については、子テーブルを参照してください。
UPSERT クエリの動作
デフォルトでは、カラムマッピングのUPSERT スライダーはON に設定されています。これは、UPSERT マッピングが、レコードを挿入する前(一致するレコードがない場合のINSERT)か、更新する前(レコードがすでに存在する場合のUPDATE)かを判定するために、対象にレコードが存在するかどうかを判断することを意味します。
UPSERT スライダーをON に設定
スライダーがON に設定されている場合、クエリの動作はUPSERT By およびPerform this query… のラジオボタンで選択した内容に基づいて変化します。Id によるUPSERT
入力XML にキーカラムが存在する場合、一致するキーを持つレコードが存在するかどうかを判定するために、データベースにクエリが発行されます:非キーカラムによるUPSERT
選択したUPSERT By カラムに一致する値を含むレコードが存在するかどうかを判定するために、テーブルの主キーを選択することにより、データベースにクエリが発行されます:選択したUPSERT By カラムが入力で指定されていない場合、次のクエリに示すように、NULL 値でルックアップが使用されます。
カスタムクエリの使用
UPSERT キーを選択するためのカスタムクエリを記述することもできます。このオプションを使用すると、単一のカラムの一致だけでなく、より複雑なロジックを使用してルックアップを実行できます。次のクエリを考えてみましょう:@OrderID 構文は、一致する入力XML から値を参照するために使用されます。静的な値を使用することもできます。'Active' を囲む引用符は、この句が静的な値を使用していることを示します。
ここでも、キーカラムの一致が成功すると、更新リクエストの形成に使用されます。一致しない場合は、レコードが挿入されます。
UPSERT スライダーをOFF に設定
スライダーがOFF に設定されている場合、コネクタはすべてのクエリを単純にデータベースに挿入します。入力マッピングのコードビューを確認すると、テーブルのaction 属性がinsert になっていることがわかります:
update に設定できます:
Arc フローの例
Upsert で構成されたCData コネクタのテーブルとカラムを選択したら、そのコネクタをArc フローの末尾に配置します。次のスクリーンショットは、File コネクタ、CSV コネクタ、XML Map コネクタ、および末尾のCData Upsert コネクタから成るフローの例を示しています:
- File コネクタがディスクからCSV ファイルを取得してフローに取り込みます。
- CSV1 コネクタがCSV ファイルをXML に変換します。
- このデータはSource File としてXML_Map コネクタに渡され、Source ツリーにマッピングされます。
- CData_Upsert コネクタからのデータはDestination File としてXML_Map コネクタに渡され、Destination ツリーにマッピングされます。

- XML_Map コネクタは、Source 要素を同じ名前のDestination 要素に自動的にマッピングしようとします。これらは手動で変更でき、Source からDestination へ要素をドラッグすることで空のマッピングを補完できます。

- CData_Upsert コネクタは、マッピングに従ってUpsert を実行し、結果のデータをCData に渡します。