Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
среда выполнения интеграции SSIS в Фабрика данных Azure
Сравнение строк является важной частью многих преобразований, выполняемых службами Integration Services, и сравнения строк также используются в оценке выражений в переменных и выражениях свойств. Например, при преобразовании «Сортировка» сравниваются значения в наборе данных для сортировки данных по возрастанию или по убыванию.
Настройка преобразований для сравнений строк
Преобразования «Сортировка», «Агрегирование», «Нечеткое группирование» и «Нечеткий поиск» можно настроить так, чтобы изменить способ сравнения строк на уровне отдельных столбцов. Например, можно указать, что сравнение нечувствительно к регистру. Это означает, что символы в верхнем и нижнем регистре будут считаться одинаковыми.
Приведенные ниже преобразования используют выражения, в которых могут быть строковые сравнения.
Преобразование «Условное разбиение» может использовать в выражениях сравнение строк, чтобы определить, в какой выходной поток следует отправить строку данных. Дополнительные сведения см. в статье Conditional Split Transformation.
Преобразование «Производный столбец» может использовать строковые сравнения в выражениях для создания новых значений столбцов. Дополнительные сведения см. в разделе Derived Column Transformation.
Переменные, сопоставления переменных и ограничения предшествования также используют выражения, которые могут включать сравнения строк. Дополнительные сведения о выражениях см. в разделе Выражения служб Integration Services (SSIS).
Обработка в ходе сравнения строк
В зависимости от характера данных и конфигурации преобразования при сравнении строковых данных может происходить следующая обработка:
Преобразование данных в Юникод. Если в источнике данных не использована кодировка Юникод, то данные автоматически преобразуются в Юникод до начала сравнения.
Использование локали для применения специфичных для неё правил интерпретации даты, времени, десятичных чисел и сортировки.
Применение параметров сравнения на уровне столбца для изменения чувствительности сравнений.
Преобразование строковых данных в Юникод
В зависимости от операций, которые выполняет преобразование, и конфигурации преобразования строковые данные могут преобразовываться в тип данных DT_WSTR, посредством которого строковые символы представляются в формате Юникод.
Строковые данные, имеющие тип данных DT_STR, преобразуются в Юникод с использованием кодовой страницы столбца. Службы Integration Services поддерживают кодовую страницу на уровне столбца, и каждый столбец можно преобразовать с помощью другой кодовой страницы.
В большинстве случаев службы Integration Services могут определить правильную кодовую страницу из источника данных. Например, в SQL Server можно задать параметры сортировки на уровнях базы данных и столбцов. Кодовая страница определяется правилами сортировки SQL Server, которые могут быть правилами сортировки Windows или SQL.
Если службы Integration Services предоставляют неожиданную кодовую страницу или пакет обращается к источнику данных через поставщика, который не предоставляет достаточных сведений для определения правильной кодовой страницы, можно указать кодовую страницу по умолчанию в источнике OLE DB и приёмнике OLE DB. Кодовая страница по умолчанию используется вместо кодовых страниц, предоставляемых службами Integration Services.
У файлов нет кодовых страниц. Вместо этого диспетчеры соединений «Неструктурированный файл» и «Несколько неструктурированных файлов», которые пакет использует для подключения к файловым данным, содержат свойство для указания кодовой страницы файла. Кодовую страницу можно задавать только на уровне файла, но не на уровне столбца.
Настройка локалей
Integration Services не использует кодовую страницу для определения правил сортировки данных, зависящих от языковых параметров, или для интерпретации данных даты, времени и десятичных чисел. Вместо этого преобразование считывает языковые параметры, которые задаются свойством LocaleId компонента потока данных, задачи потока данных, контейнера или пакета. По умолчанию локаль преобразования наследуется от задачи потока данных, которая, в свою очередь, наследует локаль от пакета. Если задача потока данных находится в контейнере, например в контейнере «цикл For», то она наследует локаль от контейнера.
Кроме того, можно указать локаль для диспетчера соединений с неструктурированным файлом и диспетчера соединений с несколькими неструктурированными файлами.
Настройка параметров сравнения
Локаль содержит основные правила сравнения строковых данных. Например, локаль определяет положение сортировки каждой буквы в алфавите. Однако этих правил может быть недостаточно для сравнений, выполняемых некоторыми преобразованиями, и Integration Services поддерживает набор расширенных параметров сравнения, которые выходят за рамки правил сравнения, определяемых локалью. Эти параметры сравнения задаются на уровне столбца. Например, один из вариантов сравнения позволяет игнорировать символы без интервалов. Он позволяет не учитывать при сравнении диакритические знаки, в результате чего символы a и á при сравнении будут обрабатываться как идентичные.
В приведенной ниже таблице описаны параметры сравнения и стиль сортировки.
| Опция сравнения | Описание |
|---|---|
| Игнорировать регистр | Указывает, следует ли при сравнении различать символы в верхнем и нижнем регистре. Если параметр задан, то строковое сравнение игнорирует регистр. Например, «ABC» становится таким же, как «abc». |
| Игнорировать тип каны | Указывает, следует ли различать при сравнении два типа символов японской азбуки: хирагана и катакана. Если задана эта опция, сравнение строк игнорирует тип каны. |
| Игнорировать ширину символа | Указывает, следует ли при сравнении различать однобайтовые символы или аналогичные двухбайтовые символы. Если параметр задан, то строковое сравнение рассматривает однобайтовое и двухбайтовое представления символа как один и тот же символ. |
| Игнорировать непробельные символы | Указывает, следует ли при сравнении различать пробельные символы и диакритические знаки. Если параметр задан, то строковое сравнение не учитывает диакритические знаки. Например, "Ã¥" эквивалентен "a". |
| Не учитывать символы | Указывает, следует ли различать буквенные символы и такие символы, как пробелы, знаки пунктуации, знаки валют, а также математические символы. Если параметр задан, то строковое сравнение игнорирует символы. Например, « New York» считается одинаковым с «New York», а «*ABC» — с «ABC». |
| Сортировать знаки пунктуации как символы | Указывает, выполняет ли сравнение сортировку, при которой все знаки пунктуации, кроме дефиса и апострофа, помещаются перед буквенно-цифровыми знаками. Например, если этот параметр включён, то «.ABC» сортируется перед «ABC». |
Преобразования «Сортировка», «Агрегирование», «Нечеткое группирование» и «Нечеткий поиск» включают следующие параметры для сравнения данных.
Флаг сравнения FullySensitive отображается в диалоговом окне Расширенный редактор для преобразований «Нечеткое группирование» и «Нечеткий уточняющий запрос». Если установлен флаг сравнения FullySensitive , то применяются все параметры сравнения.