Почему я не могу избежать двойных кавычек в построителе выражений 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]]: попытка разобрать выражение "(FirstName!= LkUp_FirstName) || ((ISNULL(MiddleName)? \" Abc\ ": MiddleName)!= (ISNULL(LkUp_MiddleName)? \ "Abc\": LkUp_MiddleName)) || (LastName!= LkUp_LastName)"не удалось. Токен "\" в строке "1", символ "57" не распознан. Выражение не может быть проанализировано, поскольку оно содержит недопустимые элементы в указанном месте.

1 ответ

Решение

Как сказал Прабхат Г, “abc” была копия-паста, поэтому я удалил двойную кавычку и снова ввел ее вручную.

Извлеченный урок: всегда лучше создавать выражения с нуля!

Другие вопросы по тегам