为什么我的SSIS文件系统任务无法识别我的目标路径?

时间:2015-01-05 16:14:01

标签: file ssis sql-server-2012

我在SSIS 2012中的ForEachFile枚举器中设置了一个文件系统路径。我正在迭代目录,加载每个文件,归档该文件,然后处理下一个文件等。我已经设置了目的地通过使用Project Param值的表达式的文件夹,我从ForEachFile枚举器中的变量集中获取源文件。文件系统任务说它找不到我的目标文件夹:

enter image description here

这是文件系统任务:

并证明目标文件夹存在:

enter image description here

为什么我收到此错误?我发誓我在SSIS 2008和2005中使用了完全相同的技术。这是2012年,但它应该以相同的方式工作。

3 个答案:

答案 0 :(得分:0)

DestinationConnection字段必须包含对平面文件连接的引用。该错误表明您没有具有该名称的Flat文件连接管理器。

DestinationConnection不应该是自由文本字段。您应该能够在DestinationConnection字段中打开下拉列表并选择或创建连接管理器。

您需要将输出文件路径配置为DestinationConnection字段中引用的文件连接管理器上的ConnectionString属性。

答案 1 :(得分:0)

使用UNC仍然是一种选择。与您在Source上完成的操作类似,设置IsDestinationPathVariable = True,然后将\ server \ path推送到变量User::ArchivePath或类似的。

否则,如用户3922917所示:如果IsDestinationPathVariable为false,则需要使用文件连接管理器。

在您的评论中,您表明您正在根据文件系统任务中的表达式构建UNC路径。当我在SSIS变量中构建表达式时,我发现我有更好的体验,然后简单地将该变量分配给任务的表达式。虽然这一步似乎提供了另一层维护,但在Task上设置一个断点并告诉我表达式的评估结果。你不能。它仅适用于要使用的物体,您无法检查它,因此如果您的配方关闭,您将保持高度干燥。当你不得不处理逃避UNC路径时,这种情况永远不会发生

答案 2 :(得分:0)

我遇到了同样的问题并解决了它我创建了一个变量,我在路径中放了这样的东西。小心你必须把双" \ \"。 所以路径必须是这样的:" \ \ \ \ ad1hfdalhp001 \ \ d $ \ \ data \ \ Archive \ \"