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



我正在尝试向 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]] 时出错:尝试分析表达式"(名字 != LkUp_FirstName) ||((ISNULL(中间名) ? \"abc\" : 中间名) != (ISNULL(LkUp_MiddleName) ? \"abc\" : LkUp_MiddleName)) ||(姓氏 != LkUp_LastName)"失败。 无法识别行号"1"、字符号"57"处的标记"\"。无法分析表达式,因为它在指定位置包含无效元素。

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

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

最新更新