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



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

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

就像从 \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 检查)

在文件系统任务中,我使用 SourceVariable 作为@imagePath并使用表达式来定义目标,如 @[User::remoteImagePath] + "\" + @[User::revisedImageName]

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

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

IsSourcePathVariable 设置为 True,并将 SourceVariable 设置为 SINGLE 变量。如果使用表达式编辑器使用多个变量或除单个变量以外的任何其他变量来设置 Source,则它将无法正常工作。如果要将硬编码字符串连接到变量或多个变量,请在包中创建新变量,然后使用变量选项卡中的"表达式"选项卡将变量构建为单个变量。

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

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

最新更新