我有两个 OLE DB 源,用于具有两个不同工作表的 Excel 文件。 表 A 和表 B。 工作表 A 单元格 I6 包含日期,我想合并两个源并在工作表 B 中添加一列以将该值设置为工作表 A 的日期值。可以这样做吗?任何想法都会有帮助,谢谢!
我尝试在每个源中创建相同的列,以便 UNION ALL Sheet A 和 Sheet B,但它没有按照我想要的方式返回。
表A(考虑这是他们的会员注册日期)
日期 |
---|
2012-09-01 |
B 片
姓名 | 电话号码 |
---|---|
亚当 | 123345678 |
大卫 | 123345678 |
玛丽 | 123345678 |
理想的结果
姓名 | 电话号码 | 日期 |
---|---|---|
亚当 | 123345678 | 2012-09-01 |
大卫 | 123345678 | 2012-09-01 |
玛丽 | 123345678 | 2012-09-01 |
根据我在SSIS中的测试,你可以通过以下步骤完成:
工作表 A 的 OLE DB 源:配置 OLE DB 源以从工作表 A 读取数据。这里的关键字段是日期。
工作表 B 的 Excel 源:配置另一个 Excel 源以从工作表 B 读取数据。
工作表 A 的数据转换:由于 Excel 数据通常以 DT_WSTR 形式导入,因此您可能需要使用数据转换转换将工作表 A 中的日期转换为 SSIS 可以处理的格式 (DT_DATE)。
工作表 A 的记录集目标:使用记录集目标将工作表 A 中的单行数据(日期)存储在 SSIS 变量中。您可以为此目的创建一个新的对象变量。
将脚本组件作为工作表 B 的转换:对于工作表 B 的 Excel 源,添加充当转换的脚本组件。在此脚本组件中,您可以添加一个新的输出列(用于日期),并将其值设置为变量中的日期(存储工作表 A 中的日期)。您可以在 Input0_ProcessInputRow 方法中使用 Row. = Variables. 语法。
OLE DB 目标:最后,您可以使用 OLE DB 目标将数据(现在包括工作表 A 中的日期)写入所需的目标。