Как я могу заставить преобразование поиска SSIS игнорировать алфавитный регистр?

StackOverflow https://stackoverflow.com/questions/849758

Вопрос

Надеюсь, это легко объяснить, но в одном из моих пакетов SSIS есть преобразование поиска.Я использую его для поиска идентификатора записи сотрудника в таблице измерений.Однако моя проблема заключается в том, что в некоторых исходных данных имена сотрудников написаны заглавными буквами (например:CHERRERA), а данные сравнения, которые я использую, написаны строчными буквами (например:Черрера).

Поиск не выполняется для записей, которые не на 100% похожи по регистру (например:cherrera vs cherrera работает нормально, cherrera vs CHERRERA не работает).Есть ли способ заставить преобразование поиска игнорировать регистр для типа данных string/varchar?

Это было полезно?

Решение

Я считаю, что не существует способа сделать преобразование нечувствительным к регистру, однако вы можете изменить оператор SQL для вашего преобразования, чтобы гарантировать, что исходные данные соответствуют регистру ваших данных сравнения, используя строковую функцию LOWER().

Другие советы

Установите для свойства CacheType преобразования поиска значение Partial или None.

Сравнения поиска теперь будут выполняться SQL Server, а не компонентом поиска SSIS, и больше не будут учитываться регистр.

Вам необходимо изменить источник, а также выполнить поиск данных, оба должны быть в одном регистре.

Основываясь на этом Статья Майкрософт:

Поиски, выполняемые преобразованием «Уточняющий запрос», чувствительны к регистру.Чтобы избежать ошибок поиска, вызванных различиями в регистре данных, сначала используйте преобразование «Карта символов», чтобы преобразовать данные в верхний или нижний регистр.Затем включите функции UPPER или LOWER в оператор SQL, который генерирует справочную таблицу.

Чтобы узнать больше о Трансформация карты персонажа, перейдите по этой ссылке"

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top