在SSIS中移动和重命名文件期间无法锁定变量

时间:2014-04-03 15:05:03

标签: ssis

新手问题。我相信这是最常见的错误之一。我在msdn论坛上发现了其中几个,但可能有很多方法可以实现这个错误?请帮忙。

我正在尝试移动并将一些图像从一个文件夹重命名为另一个文件夹(是的,我已经看过Rafael Salas和其他许多人的博客,但没有一个帮助)。

喜欢从\ server1 \ images \ 123-456.jpg移动到\ server2 \ images \ 123456.jpg

我正在使用foreach。

源变量是动态构建的。在第一次迭代中@imagePath = \ server1 \ images \ 123-456.jpg(我使用messagebox.show检查)

我定义了@remoteImagePath = \ server2 \ images \(永远不会改变)和@revisedImageName = 123456.jpg(使用字符串替换在脚本任务中动态构建 - 也使用messagebox.show检查)

在FileSystem Task中,我使用SourceVariable作为@imagePath并使用表达式定义目的地,如@ [User :: remoteImagePath] +“\”+ @ [User :: revisedImageName]

不知道是什么原因,我收到此错误

无法锁定变量“\ server2 \ images \ 123456.jpg”以进行读取访问,错误为0xC0010001“无法找到该变量。当在执行期间尝试从容器上的Variables集合中检索变量时会发生这种情况。包的变量,变量不存在。变量名可能已更改或变量未创建。“。

2 个答案:

答案 0 :(得分:0)

将IsSourcePathVariable设置为True并将SourceVariable设置为SINGLE变量。 如果使用表达式编辑器使用多个变量设置Source,或者除了SINGLE变量之外的其他任何变量,它将无效。如果要将硬编码字符串连接到变量或多个变量,请通过在包中创建新变量来执行此操作,并使用变量选项卡中的“表达式”选项卡将变量构建为单个变量。

答案 1 :(得分:0)

我相信表达式编辑器需要语法

   @[User::remoteImagePath] + "\\" + @[User::revisedImageName]