【发布时间】:2018-01-11 10:02:40
【问题描述】:
在 SSIS 包中,我想将数据从多个实例发送到平面文件。为此,我创建了一个由 3 个变量组成的动态连接字符串:
- “.txt”
- 网络路径
- 文件名(这是我在包中其他地方使用的实例名称变量(字符串))
当我此时评估我的表达式时,我收到:
对于
TRIM(@[User::FileName]+REPLACE(@[User::ServerName],"\\","")+@[User::ExtensionFile])
我收到
\\test-01\TEMP\SQL01MyInstance.txt
但是,当我运行作业时,它无法创建 SQL01MyInstance.txt,并且我收到错误消息:
[平面文件目标 [11]] 错误:无法打开数据文件“\\test-01\TEMP\SQL01MyInstance
.txt”。[SSIS.Pipeline] 错误:平面文件目标未通过预执行阶段并返回错误代码 0xC020200E。
文件名末尾有一个不需要的空格,当我将错误消息复制粘贴到其他地方时,它似乎是一个换行符(在 .txt 之前)
有谁知道我怎样才能摆脱它那行返回(我假设这会使工作失败)?
编辑 1:
目标文件夹的权限没问题,因为我创建了另一个平面文件以防出现错误,并且在失败后正常创建;但不是动态名称(正常行为)
【问题讨论】:
-
您是从 sql server 代理作业运行这个包吗?
-
不,我直接从我的视觉工作室运行它
标签: sql-server ssis expression connection-string etl