首页 > 解决方案 > 需要 SSIS 帮助 - 如何从目的地获取 ID

问题描述

我是 SSIS 的新手。目前致力于将数据从 SQL 迁移到 Oracle。我们在两个数据库中都有表(具有不同的数据类型)。比如说,一个主人(角色)和一个孩子(员工)。我正在将 Employee 表从 SQL 迁移到 Oracle。RoleID 是 Employee 表中的外键。

由于 Destination 数据类型和 RoleIds 与 Source 不同,我需要从 Source 员工表中获取“RoleName”,与 Destination 中的 Role Table 连接并获取各自的 ID。

来源: 员工表 --> RoleId(GUID 数据类型)

目标 员工表 --> RoleId(Int 数据类型)

我尝试使用 FuzzyLookup 和 Lookup,我没有在那里获得目标连接管理器的详细信息。任何其他想法如何实现这一目标?

提前致谢。

表结构:

在此处输入图像描述

标签: sqlsql-serveroraclessisoracle12c

解决方案


如果可以,最好的处理方法是将源数据按原样导入目标服务器上的临时表,然后在目标服务器上执行查找的过程中将数据导入最终表在过程代码中获取 ID。

如果您不能这样做并且必须在 SSIS 包中完成所有操作,那么您可以通过将另一个 Source 组件添加到您的数据流来执行此操作,该组件从 Oracle 中的 Role 表中获取数据并对即将到来的数据执行 Merge Join从 SQL Server 加入,RoleNameID从 Oracle 表中获取数据流。请注意,如果您这样做,则必须在 Merge Join 键 ( RoleName) 上对两个源组件进行排序。


推荐阅读