为什么我不能在SSIS表达式生成器中转义双引号字符?

时间:2017-07-13 10:38:16

标签: sql-server ssis etl expressionbuilder conditional-split

我正在尝试在SSIS中为条件性拆分转换添加条件,但条件中字符串开头的双引号字符会引发错误。

这是我的条件:

(FirstName != LkUp_FirstName) || ((ISNULL(MiddleName) ? “abc” : MiddleName) != (ISNULL(LkUp_MiddleName) ? “abc” : LkUp_MiddleName)) || (LastName != LkUp_LastName)

以下是我在条件性拆分转换编辑器上单击“确定”时收到的错误消息的开头:

Error at Data Flow Task [Conditional Split [105]]: Attempt to parse the expression "(FirstName != LkUp_FirstName) || ((ISNULL(MiddleName) ? “abc” : MiddleName) != (ISNULL(LkUp_MiddleName) ? “abc” : LkUp_MiddleName)) || (LastName != LkUp_LastName)" failed.  The token " " at line number "1", character number "57" was not recognized. The expression cannot be parsed because it contains invalid elements at the location specified.

我试图通过将条件更改为:

来使用“\”来转义双引号
(FirstName != LkUp_FirstName) || ((ISNULL(MiddleName) ? \“abc\” : MiddleName) != (ISNULL(LkUp_MiddleName) ? \“abc\” : LkUp_MiddleName)) || (LastName != LkUp_LastName)

但后来我收到以下错误:

  

数据流任务错误[条件拆分[105]]:尝试解析表达式“(FirstName!= LkUp_FirstName)||((ISNULL(MiddleName)?\”abc \“:MiddleName)!=(ISNULL( LkUp_MiddleName)?\“abc \”:LkUp_MiddleName))||(LastName!= LkUp_LastName)“失败。行号“1”的标记“\”,字符号“57”未被识别。无法解析表达式,因为它在指定的位置包含无效元素。

1 个答案:

答案 0 :(得分:0)

正如Prabhat G所说“abc”是复制粘贴,所以我删除了双引号并再次手动输入。

经验教训:从头开始构建表达式总是更好!