F.30. mchar#
F.30. mchar #
Модуль mchar предоставляет дополнительные типы данных для совместимости с Microsoft SQL Server (MS SQL).
F.30.1. Обзор #
Этот модуль был разработан для улучшения поддержки 1C Предприятия, самой популярной российской CRM и ERP системы.
Он реализует типы MCHAR
и MVARCHAR
, которые совместимы с MS SQL CHAR и VARCHAR соответственно, с сохранением всех ошибок.
Кроме того, эти типы используют библиотеку ICU для сравнения и
преобразования регистра, поэтому их поведение идентично на разных
операционных системах.
Tantor SE-1C также включает
расширение citext, которое предоставляет типы,
аналогичные MCHAR
. Однако это расширение не эмулирует поведение MS-SQL
в отношении пробелов в конце значения.
Differences from Tantor SE-1C CHAR and VARCHAR are:
Сравнение без учета регистра
Обработка пробелов в конце строки
Эти типы всегда хранятся в виде двухбайтового значения Unicode, независимо от кодировки базы данных.
F.30.2. Дополнительные типы #
mchar
— аналог типа char в MS SQLmvarchar
— аналог типа MS SQL varchar
F.30.3. Функции MCHAR и MVARCHAR #
Определяет функцию
length(str)
Определяет функцию
substr(str, pos[, length])
Определяет оператор
||
, который будет применяться для объединения любых аргументов (mchar
иmvarchar
)Определяет набор операторов:
<
,<=
,=
,>=
,>
для регистронезависимого сравнения (ICU)Определяет набор операторов:
&<
,&<=
,&=
,&>=
,&>
для чувствительного к регистру сравнения (ICU)Неявное преобразование между типами
mchar
иmvarchar
Поддержка B-дерева и хеш-индекса
Поддержка оператора
LIKE [ESCAPE]
Поддержка оператора
SIMILAR TO [ESCAPE]
Оператор
~
(регулярное выражение POSIX) поддерживаетсяПоддержка индексов для оператора
LIKE
F.30.4. Авторы #
Олег Бартунов, Федор Сигаев.