Сравнение строковых данных
Сравнения строк — важная составляющая любого преобразования, которое выполняется с помощью служб Integration Services. Кроме того, они применяются для вычисления выражений в переменных и выражениях свойств. Например, при преобразовании «Сортировка» сравниваются значения в наборе данных для сортировки данных по возрастанию или по убыванию.
В зависимости от характера данных и конфигурации преобразования при сравнении строковых данных может происходить следующая обработка:
- Преобразование данных в Юникод. Если в источнике данных не использована кодировка Юникод, то данные автоматически преобразуются в Юникод до начала сравнения.
- Использование языкового стандарта для применения правил конкретных языковых стандартов при интерпретации даты, времени, десятичных данных и порядка сортировки.
- Применение параметров сравнения на уровне столбца для изменения чувствительности сравнений.
Для таких преобразований как «Сортировка», «Выполнение статистического вычисления», «Нечеткое группирование» и «Нечеткий уточняющий запрос» можно настраивать различные способы сравнения строк на уровне столбца. Например, можно указать, что сравнение нечувствительно к регистру. Это означает, что символы в верхнем и нижнем регистре будут считаться одинаковыми.
Приведенные ниже преобразования используют выражения, в которых могут быть строковые сравнения.
- Преобразование «Условное разбиение» с помощью сравнений строк в выражениях может определять, в какой выход следует отправлять строки данных. Дополнительные сведения см. в разделе Преобразование «Условное разбиение».
- Преобразование «Производный столбец» с помощью строковых сравнений в выражениях может формировать новые значения столбцов. Дополнительные сведения см. в разделе Преобразование «Производный столбец».
Кроме того, выражения со строковыми сравнениями можно применять в переменных, сопоставлении переменных, а также в ограничениях очередностью. Дополнительные сведения о выражениях см. в разделе Справочник выражений служб Integration Services.
Преобразование строковых данных в Юникод
В зависимости от операций, которые выполняет преобразование, и конфигурации преобразования строковые данные могут преобразовываться в тип данных DT_WSTR, посредством которого строковые символы представляются в формате Юникод.
Строковые данные типа DT_STR преобразуются в Юникод с помощью кодовой страницы столбца. Службы Integration Services поддерживают кодовые страницы уровня столбца, и каждый столбец может быть преобразован с помощью различной кодовой страницы.
Обычно службы Integration Services могут самостоятельно определить правильную кодовую страницу по источнику данных. Например, в SQL Server можно настроить параметры сортировки для уровня базы данных и уровня столбца. Кодовая страница является производной от параметров сортировки SQL Server 2005, которые могут быть либо параметрами сортировки Windows, либо параметрами сортировки SQL. Дополнительные сведения см. в разделе Работа с параметрами сортировки.
Если службы Integration Services выдают непредвиденную кодовую таблицу, либо если пакет подключается к источнику данных с помощью поставщика, который не предоставил данных для определения правильной кодовой страницы, то можно указать кодовую страницу по умолчанию в источнике и назначении OLE DB. Кодовая страница по умолчанию используется вместо кодовых страниц, указанных в службах Integration Services.
У файлов нет кодовых страниц. Вместо этого в диспетчере соединений одного или нескольких плоских файлов, с помощью которого пакет подключается к данным в файле, предусмотрено свойство, указывающее кодовую страницу для файла. Кодовую страницу можно задавать только на уровне файла, но не на уровне столбца.
Настройка языковых стандартов
Службы Integration Services не применяют кодовые страницы при построении правил языкового стандарта для сортировки данных или интерпретации даты, времени и десятичных данных. Вместо этого преобразование считывает языковой стандарт, заданный в свойстве LocaleId компонента потока данных, задачи «Поток данных», контейнера или пакета. По умолчанию языковой стандарт преобразования наследуется от задачи «Поток данных», которая, в свою очередь, наследует его от пакета. Если задача «Поток данных» находится в контейнере, например, в контейнере «цикл по элементам», то она наследует языковой стандарт от контейнера.
Кроме того, можно указывать языковой стандарт для диспетчеров соединений с одним или несколькими плоскими файлами.
Настройка параметров сравнения
Языковой стандарт содержит основные правила сравнения строковых данных. Например, языковой стандарт определяет положение сортировки каждой буквы в алфавите. Тем не менее этих правил может быть недостаточно для сравнений, выполняемых некоторыми преобразованиями, и службы Integration Services поддерживают набор расширенных параметров сравнения, которых нет среди основных правил языкового стандарта. Эти параметры сравнения задаются на уровне столбца. Например, один из параметров сравнения позволяет игнорировать непробельные символы. С этим параметром игнорируются диакритические знаки, такие как ударение, в результате «a» и «a» при сравнении не различаются.
В приведенной ниже таблице описаны параметры сравнения и стиль сортировки.
Параметр сравнения | Описание |
---|---|
Игнорировать регистр |
Указывает, следует ли при сравнении различать символы в верхнем и нижнем регистре. Если параметр задан, то строковое сравнение игнорирует регистр. Например, «ABC» при сравнении не отличается от «abc». |
Игнорируется тип японской азбуки |
Указывает, следует ли различать при сравнении два типа символов японской азбуки: хирагана и катакана. Если параметр задан, то строковое сравнение игнорирует тип японской азбуки. |
Игнорировать ширину символа |
Указывает, следует ли при сравнении различать однобайтовые символы или аналогичные двухбайтовые символы. Если параметр задан, то строковое сравнение рассматривает однобайтовое и двухбайтовое представления символа как один и тот же символ. |
Игнорировать непробельные символы |
Указывает, следует ли при сравнении различать обычные символы и символы с диакритическими знаками. Если параметр задан, то строковое сравнение игнорирует диакритические знаки. Например, «a» равно «a». |
Игнорировать символы |
Указывает, следует ли различать буквенные символы и такие символы, как пробелы, знаки пунктуации, знаки валют, а также математические символы. Если параметр задан, то строковое сравнение игнорирует символы. Например, « Москва» не отличается от «Москва», а «*ABC» не отличается от «ABC"'. |
Сортировать знаки пунктуации как символы |
Указывает, следует ли располагать все знаки пунктуации кроме дефиса и апострофа перед буквенно-цифровыми символами. Например, если параметр задан, то ».ABC" оказывается перед «ABC». |
Для сравнения данных эти параметры используют преобразования «Сортировка», «Выполнение статистического вычисления», «Нечеткое группирование» и «Нечеткий уточняющий запрос».
Флаг сравнения FullySensitive отображается в диалоговом окне Расширенный редактор для преобразований «Нечеткое группирование» и «Нечеткий уточняющий запрос». Если установлен флаг сравнения FullySensitive, то применяются все параметры сравнения.
См. также
Основные понятия
Типы данных служб Integration Services
Быстрый синтаксический анализ
Стандартный синтаксический анализ