我试图将数据源设置为动态变量,但我不断收到错误。我想知道是否有人可以帮我纠正我下面的表达。谢谢你!这是一个 OLE DB 数据源连接表达式。
“数据源=” + @[User::varFileName] + “;Provider=Microsoft.ACE.OLEDB.12.0;扩展属性=”Excel 12.0;HDR=NO;”;
我在计算表达式时收到此错误。
无法计算表达式。
其他信息:
尝试解析表达式“”Data Source =“+ @ [User :: varFileName] +”; Provider = Microsoft.ACE.OLEDB.12.0; Extended Properties =“Excel 12.0;HDR = NO;”;“失败。表达式可能包含无效标记、不完整标记或无效元素。它可能格式不正确,或者可能缺少所需元素的一部分,例如括号。
(Microsoft.DataTransformationServices.Controls)
所以你的问题是嵌入引号。你错过了最后的报价
"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;\";"