首页 > 解决方案 > 如何更改 SSIS 包中的平面文件连接管理器“文件名”表达式值?

问题描述

我正在更改具有平面文件连接的现有 SSIS 包。使用以下表达式设置连接管理器的连接字符串属性:

@[User::FilePath]+ @[User::FileName] 

...其中 User::FilePath 解析为 C 驱动器上的路径。我需要更改 User::FilePath 的值,使其指向 D。我在哪里更改 User::FilePath 指向的值?

谢谢,

肖恩

标签: ssisssis-2012ssis-2008

解决方案


这取决于。

您已经标记了 2008 和 2012,因此两者的界面略有不同,但找到变量窗口并查看一个名为FilePath

它可能就像将它从 C:\some\path\here 更改为 D:\my\new\path 一样简单

但是路径上可能有一个表达式(F4/右键单击 2008 年的属性)并且更改值不会做任何事情,因为鼠标移出事件将导致表达式计算并且您返回原始值。如果它使用表达式,那么您需要修改表达式或修改引用表达式中的值。例如

@[User::FileRoot] + @[User::BasePath]

其中 FileRoot 是 C: 并且 BasePath 是 \some\path\here

这只是您的设计时间价值。FilePath 的值可以通过 Configuration (external, table, .dtsconfig) 设置,通过 /SET 属性等运行时执行。

另一个需要检查的地方是 Foreach 文件枚举器。它可能被硬编码为指向 C:\some\path 并将目录路径拉入该变量。


推荐阅读