ssis - 如何更改 SSIS 包中的平面文件连接管理器“文件名”表达式值?
问题描述
我正在更改具有平面文件连接的现有 SSIS 包。使用以下表达式设置连接管理器的连接字符串属性:
@[User::FilePath]+ @[User::FileName]
...其中 User::FilePath 解析为 C 驱动器上的路径。我需要更改 User::FilePath 的值,使其指向 D。我在哪里更改 User::FilePath 指向的值?
谢谢,
肖恩
解决方案
这取决于。
您已经标记了 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 并将目录路径拉入该变量。
推荐阅读
- graphql - 未根据 GraphQL 放大查询中的过滤器获得计数
- c++ - 使用 ifdef 包含文件会导致多个定义
- java - java继承中的这个法律问题是什么以及如何?
- python-3.x - 从 yaml.dump() 中删除 yaml 标签
- css - Safari 上的 CSS 问题:div 中出现意外空间
- amazon-iam - 支持带有白名单 IP 地址的 CalledVia athena 条件
- r - 使用 lat 和 Lon 从栅格中提取深度数据
- java - 为什么 getAsPrimitive 和 applyAsPrimitive 而不是 get 和 apply?
- c# - 寻找合适的多线程锁
- javascript - 节点环境变量:它们会持续存在吗?