提问人:Optimaximal 提问时间:5/15/2023 最后编辑:Optimaximal 更新时间:5/16/2023 访问量:126
将 CSV 导入与 SSIS 包中的用户变量组合
Combining CSV import with User Variable in SSIS package
问:
我正在将许多CSV文件导入数据库。目的是从文件中获取数据,但也将关联的 CSV 文件的文件名写入每个数据库行。
我在数据流中使用脚本组件来捕获 ForEach 循环写入的“当前文件”变量,但我正在努力将其集成到数据流目标 (OLE DB) 中。
如果我使用 UNION ALL,则脚本组件行有自己的具有 NULL 值的行。
两个合并转换的行为大致相同。
我应该如何组合这两个数据源,以便使文件名与目标表中每个文件的所有记录一起重复?
答:
2赞
billinkc
5/16/2023
#1
删除脚本组件和 UNION ALL,因为它们不需要。
相反,添加一个名为 Within the Derived Column 的 Derived Column 组件,使用并为其指定一个好的列名称,例如DER Add file name
@[User::filename]
FileNameColumnName
如何在目的地使用它取决于您。如果您还没有列,请添加一个ALTER TABLE dbo.MyTable ADD FileNameColumnNamevarchar(250) NULL;
最后,将该列映射到目标。
或者,您可以进入平面文件源的“高级”属性,并将 添加到数据流中,并跳过派生列来注入文件名。FileNameColumnName
使用派生列模式适用于任何文件源(Excel 等),但 FileNameColumnName 内置于平面文件源中,因此无论哪种方式都赞成/反对。
我在“当前文件的名称是什么”下写了它?
评论
0赞
Optimaximal
5/16/2023
就是这么简单🤦 ♂️.当我尝试实现派生列时,我在单独的分支上进行了操作,并再次尝试合并结果。谢谢。有蜱虫!
评论