我正在使用 SSIS 来合并 join sql server 数据(左)和 oracle 数据(右)。两个数据集都在合并连接之前在源处排序。当 oracle 源仅返回一行时它工作正常,但当它返回多行时则不行。即使有几行具有匹配的数据,它也不会在 Merge Join 之后返回数据。这是我的流程:


更多信息:
两者都是预先排序的(在源查询中排序)。oracle 源列在查询中EXTERNLAL_ID被转换为整数CAST(EXTERNAL_ID AS INTEGER),因此在 Merge Join 之前,两个连接键都以 DT_I4 结束。
示例:SQL Server 源代码有三行UNIQUEID:1、2、3,Oracle 源代码有一行EXTERNAL_ID:1、Oracle_UNIQUE_ID:999;UNIQUEIDMerge Join 使用 SQL Server :1、EXTERNAL_ID:1 和ORACLE_UNIQUE_ID:999按预期返回一行。如果 SQL Server 源有三行UNIQUEID:1,2,3,Oracle 源有两行EXTERNAL_ID:1,2 和ORACLE_UNIQUE_ID:999,998;合并联接不返回任何数据。