CData 端口已棄用。與其他資料庫端口不同,它不支援對映模式,因此 Upsert 操作仍需要使用 XML Map 端口來對映列。
表和列
如果為 CData 端口選擇 Upsert,則必須從 CData 中選擇一個(或多個)目標表。單擊表格面板上方的新增按鈕。


你可以透過單擊新增並重複此過程來選擇更多表。有關詳細資訊,請參閱子表。
UPSERT 查詢行為
預設情況下,列對映中的 UPSERT 滑塊設定為 ON。這意味著 UPSERT 對映在 INSERT 記錄(如果沒有匹配記錄)或 UPDATE 記錄(如果記錄已存在)之前確定記錄是否存在於目標中。
UPSERT 滑塊設定為開啟
當滑塊設定為 ON 時,查詢行為會根據在 UPSERT By 和執行此查詢… 選項按鈕中選擇的內容而變化。按 ID 執行 UPSERT
如果輸入 XML 中存在鍵列,則會向資料庫發出查詢以確定是否存在具有匹配鍵的任何記錄:按非鍵列執行 UPSERT
透過選擇表的主索引鍵,向資料庫發出查詢,以確定是否存在所選 UPSERT By 列包含匹配值的記錄:如果輸入中未指定所選的 UPSERT By 列,則查詢將與 NULL 值一起使用,如以下查詢所示:
使用自定義查詢
還可以編寫自定義查詢來選擇 UPSERT 鍵。此選項允許使用比單列匹配更複雜的邏輯來執行查詢。考慮以下查詢:@OrderID 語法用於引用匹配輸入 XML 中的值。還可以使用靜態值:'Active' 周圍的引號表示該子句使用靜態值。
同樣,鍵列的成功匹配用於形成更新請求。如果沒有匹配,則插入記錄。
UPSERT 滑塊設定為關閉
當滑塊設定為 OFF 時,端口只需將所有查詢插入資料庫即可。檢查輸入對映的程式碼檢視顯示表的action 屬性是 insert:
update,如以下程式碼片段所示:
知行之橋流程範例
為 Upsert 配置的 CData 端口選擇表格和列後,將端口放置在知行之橋工作流程的末尾。下面的螢幕截圖描述了一個範例流程,其中包含一個 File 端口、一個 CSV 端口、一個 XML Map 端口,以及末尾的一個 CData Upsert 端口:
- File 端口從磁碟提取 CSV 檔案並將其放入流程中。
- CSV1 端口將 CSV 檔案轉換為 XML。
- 此資料作為來源檔案傳遞給 XML_Map 端口,後者對映到源樹狀結構中。
- 來自 CData_Upsert 端口的資料作為目的檔案傳遞給 XML_Map 端口,後者對映到目標樹狀結構。

- XML_Map 端口嘗試自動將源元素對映到具有相同名稱的目標元素。你可以手動更改這些對映,並透過將元素從源拖到目標來填充空白對映。

- CData_Upsert 端口根據對映執行 Upsert 並將結果資料傳遞給 CData。