Назначение
Добавление новой сортировки (сравнения) для набора символов поддерживаемого в базе данных.
Синтаксис
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
позволяет указать будет ли сравнение чувствительно к акцентированным буквам (например “е” и “ё”).