SSIS:文件系统任务'无法找到文件'

时间:2017-06-06 04:08:51

标签: sql-server ssis etl sql-server-data-tools ssis-2012

我正在开发一个SSIS项目,该项目通过Web下载文件并在sql server中上传数据,然后将下载的文件移动到另一个文件夹。这是一张更清晰画面的图像

enter image description here

我有一个变量: Source_Folder的值为C:\Users\T-Aordiz\Documents\DumpDatas\Outbound Dump\Dump Success_Folder值:C:\Users\T-Aordiz\Documents\DumpDatas\Outbound Dump\Success

For Each Loop值     Expressions:@[User::Source_Folder] , Variable Mappings: User::FileName(which is blank string)

这是我的文件系统任务

enter image description here

但是我遇到此错误消息

  

错误:0xC002F304成功,文件系统任务:出现以下错误消息时出错:“找不到文件'C:\ Users \ T-Aordiz \ Documents \ DumpDatas \ Outbound Dump \ Dump'。”。    任务失败:成功

我尝试更改File System Task中的表达式,但也遇到了错误。帮帮我们

2 个答案:

答案 0 :(得分:3)

来源连接,

选项1, 使用Foreach File Enumerator - '检索文件名'时,如果选择完全合格,则会为您提供完整路径,这意味着@[User::Filename]包含带扩展名的文件夹和文件名。您可以将此变量用作源连接变量。

选项2, 使用Foreach File Enumerator - '检索文件名'时,如果选择'名称和扩展程序',则表示您必须创建另一个变量FilenameFullpath,表达式指定为@[User::Source_Folder] + "\" + @[User::Filename] 。 (您可以随时在声明的文件夹末尾包含" \")

目的地连接,

您只需指定一个文件夹,无需包含文件名和扩展名。

答案 1 :(得分:2)

在文件系统任务中,您必须选择包含源文件名和目标文件名而不是文件夹的变量。

选择@[User::Filename]作为来源,并选择目的地作为包含目标文件路径的另一个变量(不是文件夹,必须包含带扩展名的文件)

您可以使用脚本任务或表达式任务生成目标值。通过连接源文件名(无路径)+目标文件夹

请注意,@[User::Filename]应该映射到Foreach Loop container