【发布时间】:2015-07-22 17:33:54
【问题描述】:
我在 BIDS 工作。我有一个 SSIS 包,它遍历给定目录中的所有文件并将所有文件导入到表中。所以,我的控制流有一个 Foreach 循环容器,里面有一个数据流任务。数据流任务直接从平面文件源到 OLE DB 目标。因为目录可以更改,所以我将 Foreach 目录设置为动态的(即,我给了它一个包变量,我可以在目录更改时更改它)。 Files 字段具有类似 stuff*.pip 的内容,以便目录中与此模式匹配的所有文件都被导入。变量映射选项卡有一个文件名变量,它与平面文件连接管理器的表达式中使用的变量相同。
当我最初设置平面文件连接管理器时,我必须将它指向一个已经存在的文件以获取文件的元数据。然后我将文件连接管理器更改为动态(即,我在 Expressions 属性中添加了一个文件名变量),以便 Foreach 循环容器将拾取所有文件(与模式匹配)。
从那时起,文件上的元数据发生了变化。因此,当我打开解决方案文件时,它会在数据流任务中的平面文件源上引发警告。要解决此问题,我必须暂时将平面文件连接更改回硬编码路径,以便我可以更改新文件上的元数据。然后我再次使其动态化(即,使用表达式中的文件名变量,它覆盖了硬编码的文件路径)。 (最后我双击Data Flow Task中的Flat File Source,自动更新Flat File Source中的元数据。)
这是更新平面文件元数据的正确方法吗?这对我来说似乎有点笨拙。
【问题讨论】:
标签: ssis