我怎样才能让这个SSIS表达式工作?

问题描述 投票:0回答:1

我试图将数据源设置为动态变量,但我不断收到错误。我想知道是否有人可以帮我纠正我下面的表达。谢谢你!这是一个 OLE DB 数据源连接表达式。

“数据源=” + @[User::varFileName] + “;Provider=Microsoft.ACE.OLEDB.12.0;扩展属性=”Excel 12.0;HDR=NO;”;

我在计算表达式时收到此错误。

标题:表达式生成器

无法计算表达式。

如需帮助,请单击:https://go.microsoft.com:80/fwlink?ProdName=Microsoft%C2%AE%20Visual%20Studio%C2%AE&ProdVer=16.11.33927.289&EvtSrc=Microsoft.DataTransformationServices.Controls.TaskUIFramework。 TaskUIFrameworkSR&EvtID=FailToEvaluateExpression&LinkId=20476


其他信息:

尝试解析表达式“”Data Source =“+ @ [User :: varFileName] +”; Provider = Microsoft.ACE.OLEDB.12.0; Extended Properties =“Excel 12.0;HDR = NO;”;“失败。表达式可能包含无效标记、不完整标记或无效元素。它可能格式不正确,或者可能缺少所需元素的一部分,例如括号。

(Microsoft.DataTransformationServices.Controls)


ssis expression
1个回答
0
投票

所以你的问题是嵌入引号。你错过了最后的报价

"Data Source=" 
+ @[User::varFileName] 
+ ";Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties="Excel 12.0;HDR=NO;";

您会看到有一个分号终止表达式,这对于 SSIS 表达式语言来说不是板球。

另一个挑战是定义扩展属性的字符串中有双引号。

为了转义 SSIS 表达式语言中的双引号,我们需要在其前面加上反斜杠

\
因此

"Data Source=" 
+ @[User::varFileName] 
+ ";Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=\"Excel 12.0;HDR=NO;\";"
© www.soinside.com 2019 - 2024. All rights reserved.