Поделиться через


Сравнение строковых данных

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных 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 компонента потока данных, задачи потока данных, контейнера или пакета. По умолчанию локаль преобразования наследуется от задачи потока данных, которая в свою очередь наследует его от пакета. Если задача потока данных находится в контейнере, например в контейнере «цикл по элементам», то она наследует локаль от контейнера.

Кроме того, можно указывать локаль для диспетчеров соединений с одним или несколькими неструктурированными файлами.

Настройка параметров сравнения

Локаль содержит основные правила сравнения строковых данных. Например, локаль определяет положение сортировки каждой буквы в алфавите. Однако эти правила могут быть недостаточно для сравнения, которые выполняют некоторые преобразования, и службы Integration Services поддерживают набор расширенных параметров сравнения, которые выходят за рамки правил сравнения языкового стандарта. Эти параметры сравнения задаются на уровне столбца. Например, один из параметров сравнения позволяет игнорировать непробельные символы. Он позволяет не учитывать при сравнении диакритические знаки, в результате чего символы a и á при сравнении будут обрабатываться как идентичные.

В приведенной ниже таблице описаны параметры сравнения и стиль сортировки.

Параметр сравнения Description
Ignore case Указывает, следует ли при сравнении различать символы в верхнем и нижнем регистре. Если параметр задан, то строковое сравнение игнорирует регистр. Например, «ABC» при сравнении не отличается от «abc».
Игнорируется тип японской азбуки Указывает, следует ли различать при сравнении два типа символов японской азбуки: хирагана и катакана. Если параметр задан, то строковое сравнение игнорирует тип японской азбуки.
Игнорировать ширину символа Указывает, следует ли при сравнении различать однобайтовые символы или аналогичные двухбайтовые символы. Если параметр задан, то строковое сравнение рассматривает однобайтовое и двухбайтовое представления символа как один и тот же символ.
Игнорировать непробельные символы Указывает, следует ли при сравнении различать обычные символы и символы с диакритическими знаками. Если параметр задан, то строковое сравнение не учитывает диакритические знаки. Например, "Ã¥" будет считаться обычным символом "a".
Не учитывать символы Указывает, следует ли различать буквенные символы и такие символы, как пробелы, знаки пунктуации, знаки валют, а также математические символы. Если параметр задан, то строковое сравнение игнорирует символы. Например, « Москва» не отличается от «Москва», а «\*ABC» не отличается от «ABC'».
Сортировать знаки пунктуации как символы Указывает, следует ли располагать все знаки пунктуации, кроме дефиса и апострофа, перед буквенно-цифровыми символами. Например, если параметр задан, то «.ABC» оказывается перед «ABC».

Для сравнения данных эти параметры используют преобразования «Сортировка», «Выполнение статистического вычисления», «Нечеткое группирование» и «Нечеткий уточняющий запрос».

Флаг сравнения FullySensitive отображается в диалоговом окне Расширенный редактор для преобразований «Нечеткое группирование» и «Нечеткий уточняющий запрос». Если установлен флаг сравнения FullySensitive , то применяются все параметры сравнения.

См. также

Типы данных служб Integration Services
Быстрый синтаксический анализ
Стандартный синтаксический анализ