Ssis

儘管排序和匹配元,但合併加入 SSIS 引發錯誤

  • December 16, 2021

我正在嘗試合併加入兩個數據源。我確保元數據匹配並且元數據中存在排序鍵,但它仍然給我錯誤:

轉換的兩個輸入必須至少包含一個已排序的列,並且這些列必須具有匹配的元數據。”

所有支持文章和匹配的論壇問題都提到了元數據和排序。我什至輸入了正確的數據集以匹配左側……不知道在這裡做什麼。流程和元數據如圖所示。第一個是左連接,第二個是右連接。最後一個條目是我希望在兩個元數據表中加入的列。

數據流 輸入 1 元數據 輸入 2 元數據

有一個設置可以告訴 Merge Join 傳入的資訊已排序,儘管在文件中,排序任務應該正確設置這些屬性。我想知道是不是因為您在排序後還有其他任務,並且 IsSorted 屬性被設置回 False。

必須為向合併和合併連接轉換提供數據的源或上游轉換設置兩個重要的排序屬性:

  • 指示數據是否已排序的輸出的 IsSorted 屬性。此屬性必須設置為 True。

> > 重要的 > > > 將 IsSorted 屬性的值設置為 True 不會對數據進行排序。此屬性僅向下游組件提供數據先前已排序的提示。 > > >

  • 輸出列的 SortKeyPosition 屬性,指示列是否已排序、列的排序順序以及多列的排序順序。必須為每一列排序數據設置此屬性。

如果您使用排序轉換對數據進行排序,則排序轉換會根據合併或合併連接轉換的要求設置這兩個屬性。也就是說,排序轉換將其輸出的 IsSorted 屬性設置為 True,並將其輸出列的 SortKeyPosition 屬性設置為。

但是,如果您不使用排序轉換對數據進行排序,則必須在源或上游轉換上手動設置這些排序屬性。

該文件告訴您如何手動設置這些設置。

引用自:https://dba.stackexchange.com/questions/246392