我正在使用 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;UNIQUEID
Merge 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;合并联接不返回任何数据。