如何使用平面文件源 B 中定义的映射修改平面文件源 A 中的一列

How to modify one column from flat file source A with mapping defined in flat file source B

我有包含 2 列的平面文件源 A

Col1 Col2
ada  1
das  2
2312 1

和第二个平面文件源 B,带有 Col1 的映射(将颜色 ID 转换为颜色名称)

Col1 Col2
1    Red
2    Green
3    Blue

我已将这两个文件加载到平面文件源中。我想知道如何用源 B 中的颜色名称替换源 A 中的 ID?预期的解决方案是:

Col1 Col2
ada  Red
das  Green
2312 REd

有什么快速解决办法吗?

Flat file source 将其设置为加载到数据库中适当的 table 作为目标。假设您创建了两个 tables tbl1tbl2:

您现在可以加入这两个 table,在下一步(DFTEXEX SQL Task 或任何地方),您可以看到所需的列作为输出:

SELECT tbl1.col1 AS [Name], 
       tbl2.col2 AS [Color]
FROM   tbl1 
       JOIN tbl2
         ON tbl1.col2 = tbl2.col1 

如果您不想分两步完成,您可以使用 Merge Task 并像上面那样加入两个。请参考下图(在您的情况下,两个源都是平面文件源,但在左侧使用与 tbl1 的左连接,因为如果颜色代码不可用,我们不想丢失该数据):

您可以在您的 SSIS 包中使用 'Merge Join' 选项,您可以根据您的要求选择 Left/Right 加入。