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