FirebirdSQL logo
 EXCEPTIONCHARACTER SET 

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

В операторе 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.

Кто может создать сортировку?

Выполнить оператор CREATE COLLATION могут:

Пользователь, создавший сортировку, становится её владельцем.

docnext count = 4

Примеры

Example 1. Создание сортировки с использованием имени, найденном в файле fbintl.conf (чувствительной к регистру символов).
CREATE COLLATION ISO8859_1_UNICODE FOR ISO8859_1;
Example 2. Создание сортировки с использованием специального (заданного пользователем) названия (“external” имя должно в точности соответствовать имени в файле fbintl.conf).
CREATE COLLATION LAT_UNI
FOR ISO8859_1
FROM EXTERNAL ('ISO8859_1_UNICODE');
Example 3. Создание не чувствительной к регистру символов сортировки на основе уже присутствующей в базе данных.
CREATE COLLATION ES_ES_NOPAD_CI
FOR ISO8859_1
FROM ES_ES
NO PAD
CASE INSENSITIVE;
Example 4. Создание не чувствительной к регистру символов сортировки на основе уже присутствующей в базе данных со специфичными атрибутами.
CREATE COLLATION ES_ES_CI_COMPR
FOR ISO8859_1
FROM ES_ES
CASE INSENSITIVE
'DISABLE-COMPRESSIONS=0';
Example 5. Создание не чувствительной к регистру символов сортировки по значению чисел (так называемой натуральной сортировки).
CREATE COLLATION nums_coll FOR UTF8
FROM UNICODE
CASE INSENSITIVE 'NUMERIC-SORT=1';

CREATE DOMAIN dm_nums AS varchar(20)
CHARACTER SET UTF8 COLLATE nums_coll; -- original (manufacturer) numbers

CREATE TABLE wares(id int primary key, articul dm_nums ...);
См. также:

DROP COLLATION.

DROP COLLATION

Назначение

Удаление существующей сортировки.

Доступно в

DSQL

Синтаксис
DROP COLLATION collname
Table 1. Параметры оператора DROP COLLATION
Параметр Описание

collname

Имя сортировки.

Оператор DROP COLLATION удаляет указанную сортировку.Сортировка должна присутствовать в базе данных, иначе будет выдана соответствующая ошибка.

Tip

Если вы хотите удалить в базе данных набор символов со всеми его сортировками, то зарегистрируйте и выполнитехранимую процедуру sp_unregister_character_set(name) из подкаталога misc/intl.sql установки Firebird.

Кто может удалить сортировку?

Выполнить оператор DROP COLLATION могут:

  • Администраторы

  • Владелец сортировки;

  • Пользователи с привилегией DROP ANY COLLATION.

Примеры

Example 1. Удаление сортировки
DROP COLLATION ES_ES_NOPAD_CI;
См. также:

CREATE COLLATION.