我试图将表达式用于SSIS中的子包但是它总是错误地说它找不到dtsx文件。我已经复制了探索者的路径,似乎是正确的。
该错误还表明无法将表达式写入属性。我的代码如下。
@ [User :: vRoot] +“\ Employees.dtsx”,其中@ [User :: vRoot]是存储在SQL中的变量
任何想法
答案 0 :(得分:2)
尝试使用额外的反斜杠转义表达式中的反斜杠。
@[User::vRoot] + "\\Employees.dtsx"
在我需要连接文件夹和文件名的情况下,我总是这样做。我通常创建两个名为FolderPath
和FileName
的变量。我们假设 FolderPath 包含C:\temp\
(确保以反斜杠结尾), FileName 包含Employees.dtsx
。< / p>
我将创建一个名为FilePath
的第三个变量,并将此变量的 EvaluateAsExpression 属性设置为 true 。我将在此变量中设置以下表达式,以便动态评估该值。
@[User::FolderPath] + @[User::FileName]
希望有所帮助。
答案 1 :(得分:0)
此处的反斜杠是转义字符,因此,如果要表示文字反斜杠,则为“ \\”。
作为一般规则,我还建议不要在字符串连接中硬编码反斜杠,而应使用此方法来考虑第一个变量中可能存在的反斜杠:
@ [User :: vRoot] +(RIGHT(@ [User :: vRoot],1)==“ \\”?“”:“ \\”)+“ Employees.dtsx”