FirebirdSQL logo

CREATE COLLATION

Назначение

Добавление новой сортировки (сравнения) для набора символов поддерживаемого в базе данных.

Доступно в

DSQL

Синтаксис
CREATE COLLATION collname
FOR charset
[FROM basecoll | FROM EXTERNAL ('extname')]
[NO PAD | PAD SPACE]
[CASE [IN]SENSITIVE]
[ACCENT [IN]SENSITIVE]
['<specific-attributes>'];

<specific-attributes> ::= <attribute> [; <attribute> ...]

<attribute> ::= attrname=attrvalue
Table 1. Параметры оператора CREATE COLLATION
Параметр Описание

collname

Имя сортировки (сравнения). Максимальная длина 63 символов.

charset

Набор символов.

basecoll

Базовая сортировка (сравнение).

extname

Имя сортировки из конфигурационного файла.Чувствительно к регистру.

Оператор CREATE COLLATION ничего не “создаёт”, его целью является сделать сортировку известной для базы данных.Сортировка уже должна присутствовать в системе, как правило, в файле библиотеки, и должна быть зарегистрирована в файле fbintl.conf подкаталога intl корневой директории Firebird.

Необязательное предложение FROM указывает сортировку, на основе которой будет создана новая сортировка.Такая сортировка должна уже присутствовать в базе данных.Если указано ключевое слово EXTERNAL, то будет осуществлён поиск сортировки из файла $fbroot/intl/fbintl.conf, при этом extname должно в точности соответствовать имени в конфигурационном файле (чувствительно к регистру).

Если предложение FROM отсутствует, то Firebird ищет в конфигурационном файле fbintl.conf подкаталога intl корневой директории сервера сортировку с именем, указанным сразу после CREATE COLLATION.Другими словами, отсутствие предложения FROM basecoll эквивалентно заданию FROM EXTERNAL ('collname').

При создании сортировки можно указать учитываются ли конечные пробелы при сравнении.Если указана опция NO PAD, то конечные пробелы при сравнении учитываются.Если указана опция PAD SPACE, то конечные пробелы при сравнении не учитываются.

Необязательное предложение CASE позволяет указать будет ли сравнение чувствительно к регистру.

Необязательное предложение ACCENT позволяет указать будет ли сравнение чувствительно к акцентированным буквам (например “е” и “ё”).

Специфичные атрибуты

В операторе CREATE COLLATION можно также указать специфичные атрибуты для сортировки.Ниже в таблице приведён список доступных специфичных атрибутов.Не все атрибуты применимы ко всем сортировкам.Если атрибут не применим к сортировке, но указан при её создании, то это не вызовет ошибки.

Important

Имена специфичных атрибутов чувствительны к регистру.

“1 bpc” в таблице указывает на то, что атрибут действителен для сортировок наборов символов, использующих 1 байт на символ (так называемый узкий набор символов), а “UNI” — для юникодных сортировок.

Table 1. Список доступных специфичных атрибутов COLLATION
Имя Значение Валидность Описание

DISABLE-COMPRESSIONS

0, 1

1 bpc

Отключает сжатия (иначе сокращения).Сжатия заставляют определённые символьные последовательности быть сортированнымикак атомарные модули, например, испанские c + h как единственныйсимвол ch.

DISABLE-EXPANSIONS

0, 1

1 bpc

Отключение расширений. Расширения позволяют рассматриватьопределённые символы (например, лигатуры или гласные умляуты)как последовательности символов и соответственно сортировать.

ICU-VERSION

default или M.m

UNI

Задаёт версию библиотеки ICU для использования. Допустимыезначения определены в соответствующих элементах<intl_module> в файле intl/fbintl.conf. Формат: либо строка “default” или основной и дополнительный номерверсии, как “3.0” (оба без кавычек).

LOCALE

xx_YY

UNI

Задаёт параметры сортировки языкового стандарта. Требуетсяполная версия библиотеки ICU. Формат строки: “du_NL” (без кавычек).

MULTI-LEVEL

0, 1

1 bpc

Использование нескольких уровней сортировки.

NUMERIC-SORT

0, 1

UNI

Обрабатывает непрерывные группы десятичных цифр в строке какатомарные модули и сортирует их в числовой последовательности(известна как естественная сортировка).

SPECIALS-FIRST

0, 1

1 bpc

Сортирует специальные символы (пробелы и т.д.) добуквенно-цифровых символов.

Tip

Если вы хотите добавить в базу данных новый набор символов с его умалчиваемой сортировкой, то зарегистрируйте ивыполните хранимую процедуру sp_register_character_name(name, max_bytes_per_character)из подкаталога misc/intl.sql установки Firebird.Для нормальной работы с набором символов, он должен присутствовать в вашей операционной системе, и зарегистрированв файле fbintl.conf поддиректории intl.