【发布时间】:2016-06-07 18:23:58
【问题描述】:
我有一个包含大约 10,000 个 PDF 文档的文件夹 SourceFolder。
我有一个列表 (FileList.csv),其中包含大约 1,000 个文件的名称。
我想将该列表中的文件从它们所在的文件夹移动到我创建的空文件夹 (DestFolder)。我正在使用 SSIS 2013。
作为概念验证,我使用 ForEachItem 枚举器成功配置了 ForEachLoop 容器,其中包含 FileSystem 任务,并移动了 2 个文件。
但是,我必须在 ForEachLoop Editor --> Collection --> Enumerator Configuration 窗口中手动输入文件名。
我为 FileName、SourceFolder 和 FullSourcePath 配置了变量,一切正常。
我的问题是 - 如何连接到平面文件以将文件名放入变量中?
我不允许发布图片,所以我会尝试解释我的尝试。
添加平面文件源和连接管理器并使用 CM Propoerties 中的表达式将 FileName 变量分配给连接字符串(不走运)
将 FlatFile 源输入 RecordSet 目标并将结果集分配给 ObjectVariable,并将 ForEach 循环容器配置更改为 ForEach ADO 枚举器,并将 ObjectVariable 分配给 ADO 源对象变量(不走运)。
这似乎是一个如此简单的任务,我希望我遗漏了一些明显的东西。抱歉,不包括图片。
【问题讨论】:
-
#2 应该可以正常工作。您能否提供更多关于发生了什么的详细信息,也许是 SSIS 日志?
-
错误是“错误:变量“User::ObjectVariable”不包含有效的数据对象”。向我建议数据没有从平面文件源到记录集目标。我在它们之间放置了一个数据查看器——它什么也没显示。我可以看到来自平面文件源编辑器的列和来自连接管理器编辑器的列和数据。
标签: ssis