查閱轉換

「查閱」轉換會藉由聯結輸入資料行中的資料與參考資料集中的資料行來執行查閱。您可以使用查閱在相關資料表中存取以通用資料行中的值為基礎的其他資訊。

參考資料集可以是快取檔案、現有的資料表或檢視、新資料表或 SQL 查詢的結果。「查閱」轉換會使用 OLE DB 連接管理員或快取連接管理員來連接到參考資料集。如需詳細資訊,請參閱<OLE DB 連接管理員>和<快取連接管理員>。

您可以利用下列方式設定「查閱」轉換:

  • 選取您要使用的連接管理員。如果想要連接到資料庫,請選取 OLE DB 連接管理員。如果想要連接到快取檔案,請選取快取連接管理員。

  • 指定包含參考資料集的資料表或檢視。

  • 藉由指定 SQL 陳述式產生參考資料集。

  • 指定輸入與參考資料集之間的聯結。

  • 從參考資料集將資料行加入至「查閱」轉換輸出。

  • 設定快取選項。

「查閱」轉換支援下列 OLE DB 連接管理員的資料提供者:

  • SQL Server

  • Oracle

  • DB2

「查閱」轉換會嘗試在轉換輸入的值與參考資料集的值之間執行等聯結 (Equi-Join) (等聯結表示轉換輸入中的各資料列,必須至少符合參考資料集中的某個資料列)。如果無法執行等聯結,則「查閱」轉換會執行下列其中一項動作:

  • 如果參考資料集中沒有相符的項目,則不會發生聯結。根據預設,「查閱」轉換會將沒有相符項目的資料列視為錯誤;不過,您可以設定「查閱」轉換,以將這些資料列重新導向至無相符結果輸出。如需詳細資訊,請參閱<查閱轉換編輯器 (一般頁面)>和<查閱轉換編輯器 (錯誤輸出頁面)>。

  • 如果參考資料表中有多個相符項目,「查閱」轉換將只傳回查閱查詢所傳回的第一個相符項目。如果找到多個相符項目,則「查閱」轉換只會在已設定為將所有參考資料集載入至快取時才產生錯誤或警告。在這種情況下,「查閱」轉換會在轉換填滿快取時偵測到多個相符項目時產生警告。

聯結可以是複合聯結,表示您可以將轉換輸入中的多個資料行聯結至參考資料集中的資料行。轉換支援聯結任何資料類型的資料行,但 DT_R4、DT_R8、DT_TEXT、DT_NTEXT 或 DT_IMAG 除外。如需詳細資訊,請參閱<Integration Services 資料類型>。

通常參考資料集的值會加入至轉換輸出。例如,「查閱」轉換可從使用輸出資料行之值的資料表擷取產品名稱,然後將產品名稱加入至轉換輸出。參考資料表的值可取代資料行的值,或者可加入至新的資料行。

「查閱」轉換執行的查閱區分大小寫。若要避免由於資料中的大小寫不同而造成查閱失敗,請先使用「字元對應」轉換將資料轉換成大寫或小寫,然後在產生參考資料表的 SQL 陳述式中包含 UPPER 或 LOWER 函數。如需詳細資訊,請參閱<字元對應轉換>、<UPPER (Transact-SQL)>和<LOWER (Transact-SQL)>。

「查閱」轉換具有下列的輸入和輸出:

  • 輸入。

  • 相符結果輸出。相符結果輸出會處理轉換輸入中,至少符合參考資料集中一個項目的資料列。

  • 無相符結果輸出。無相符結果輸出會處理輸入中沒有至少符合參考資料集中一個項目的資料列。如果將「查閱」轉換設定為把沒有相符項目的資料列視為錯誤,則這些資料列會重新導向至錯誤輸出;否則,轉換會將這些資料列重新導向至無相符結果輸出。

    [!附註]

    在 SQL Server 2005 Integration Services (SSIS) 中,「查閱」轉換僅具有一個輸出:如需有關如何執行在 SQL Server 2005 中建立之「查閱」轉換的詳細資訊,請參閱<升級查閱轉換>。

  • 錯誤輸出。

快取參考資料集

記憶體中的快取會儲存參考資料集,並儲存編列資料索引的雜湊資料表。在完成封裝的執行之前,快取都會保留在記憶體中。您可以將快取保存至快取檔案 (.caw)。

將快取保存至檔案後,系統就可以更快地載入快取。如此可改善「查閱」轉換和封裝的效能。請記住,當您使用快取檔案時,所使用的資料並不如資料庫中的資料新。

下列是將快取保存至檔案的其他優點:

下列是快取選項:

  • 參考資料集是藉由執行「查閱」轉換之前使用資料表、檢視或 SQL 查詢而產生並載入快取。您可以使用 OLE DB 連接管理員來存取資料集。

    此快取選項與 SQL Server 2005 Integration Services (SSIS) 中用於「查閱」轉換的完整快取選項相容。

  • 參考資料集是從資料流程中已連接的資料來源或從快取檔案產生,然後在「查閱」轉換執行之前載入至快取。您可以使用快取連接管理員或是快取轉換來存取資料集。如需詳細資訊,請參閱<快取連接管理員>和<快取轉換>。

  • 參考資料集是藉由在執行「查閱」轉換期間使用資料表、檢視或 SQL 查詢而產生。在參考資料集中具有相符項目的資料列,以及在資料集中沒有相符項目的資料列,都可以載入至快取。

    超過快取的記憶體大小時,查閱轉換會自動從快取中移除最不常用的資料列。

    此快取選項與 SQL Server 2005 Integration Services (SSIS) 中用於「查閱」轉換的部分快取選項相容。

  • 參考資料集是藉由在執行「查閱」轉換期間使用資料表、檢視或 SQL 查詢而產生。不會將任何資料存入快取。

    此快取選項與 SQL Server 2005 Integration Services (SSIS) 中用於「查閱」轉換的無快取選項相容。

Integration Services 和 SQL Server 的差異在於比較字串的方式。如果「查閱」轉換是設定為在執行之前將參考資料集載入至快取,則 Integration Services 會在快取中進行查閱比較;否則,查閱作業會使用參數化的 SQL 陳述式而由 SQL Server 進行查閱比較。這表示「查閱」轉換可能會根據快取類型,從相同的查閱資料表傳回不同數目的相符項目。

疑難排解查閱轉換

如果查閱作業找到的相符項目是包含 Null 值的資料行,則設定為不在快取中載入任何參考資料集的「查閱」轉換就會失敗。若要避免此失敗,請手動更新 SQL 陳述式以包含 OR ISNULL(ColumnName) 條件。如果「查閱」轉換是設定為在執行之前將參考資料集載入至快取,則查閱作業會成功。

[!附註]

如有可能,請避免在查閱作業中使用可能包含 Null 值的資料行。如果資料行包含 Null 值,請設定讓「查閱」轉換使用錯誤輸出,將沒有符合參考資料表中任何資料列的資料列導向另一個轉換輸出。或者,請考慮使用支援 Null 值查閱作業的全部快取。

您可以記錄「查閱」轉換對外部資料提供者執行的呼叫。您可以使用這項記錄功能,疑難排解查閱轉換所執行的從外部資料來源擴展快取。若要記錄查閱轉換對外部資料提供者執行的呼叫,請啟用封裝記錄,然後在封裝層級選取 [診斷] 事件。如需詳細資訊,請參閱<疑難排解封裝執行>。

設定查閱轉換

您可以透過 SSIS 設計師或以程式設計的方式來設定屬性。

如需有關 [查閱轉換編輯器] 對話方塊中可設定屬性的詳細資訊,請按一下下列其中一個主題:

如需可以設定之其他屬性的詳細資訊,請按一下下列其中一個主題:

如需有關如何設定屬性的詳細資訊,請按一下下列其中一個主題:

外部資源

Integration Services 圖示 (小) 掌握 Integration Services 的最新狀態

若要取得 Microsoft 的最新下載、文件、範例和影片以及社群中的選定解決方案,請瀏覽 MSDN 或 TechNet 上的 Integration Services 頁面:

若要得到這些更新的自動通知,請訂閱該頁面上所提供的 RSS 摘要。