×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.58. CREATE CONVERSION

6.1.58. CREATE CONVERSION

CREATE CONVERSION — создание нового преобразования кодировок

Синтаксис

CREATE [ DEFAULT ] CONVERSION name
    FOR source_encoding TO dest_encoding FROM function_name

Описание

Команда CREATE CONVERSION определяет новое преобразование между двумя кодировками символов.

Преобразования, помеченные как DEFAULT, могут использоваться для автоматического преобразования кодировки между клиентом и сервером. Для поддержки этого использования должны быть определены два преобразования: из кодировки A в B и из кодировки B в A.

Чтобы иметь возможность создать преобразование, вы должны иметь привилегию EXECUTE на функцию и привилегию CREATE в целевой схеме.

Параметры

DEFAULT

Предложение DEFAULT указывает, что данное преобразование является преобразованием по умолчанию для этой конкретной пары исходной и целевой кодировок. В схеме для пары кодировок должно быть только одно преобразование по умолчанию.

name

Имя преобразования. Имя преобразования может быть квалифицировано схемой. Если нет, преобразование определяется в текущей схеме. Имя преобразования должно быть уникальным в пределах схемы.

source_encoding

Имя исходной кодировки.

dest_encoding

Имя целевой кодировки.

function_name

Функция, используемая для выполнения преобразования. Имя функции может быть квалифицировано схемой. Если нет, функция будет искаться в пути поиска.

Функция должна иметь следующую сигнатуру:

conv_proc(
    integer,  -- идентификатор исходной кодировки (source encoding ID)
    integer,  -- идентификатор целевой кодировки (destination encoding ID)
    cstring,  -- исходная строка (C-строка, завершающаяся нулём)
    internal, -- приёмник результата (заполняется C-строкой, завершающейся нулём)
    integer,  -- длина исходной строки
    boolean   -- если true, не вызывать ошибку при сбое преобразования
) RETURNS integer;

Возвращаемое значение — количество исходных байтов, успешно преобразованных. Если последний аргумент равен false, функция должна вызывать ошибку при неверном вводе, и возвращаемое значение всегда равно длине исходной строки.

Примечания

Ни исходная, ни целевая кодировка не могут быть SQL_ASCII, так как поведение сервера в случаях, связанных с этой «кодировкой» SQL_ASCII, жёстко зашито.

Используйте команду DROP CONVERSION для удаления пользовательских преобразований.

Привилегии, необходимые для создания преобразования, могут быть изменены в будущих выпусках.

Примеры

Чтобы создать преобразование из кодировки UTF8 в LATIN1 с использованием функции myfunc:

CREATE CONVERSION myconv FOR 'UTF8' TO 'LATIN1' FROM myfunc;

Совместимость

Команда CREATE CONVERSION является расширением Digital Q.DataBase. В стандарте SQL нет оператора CREATE CONVERSION, но есть оператор CREATE TRANSLATION, который очень близок по назначению и синтаксису.

Смотрите также

ALTER CONVERSION, CREATE FUNCTION, DROP CONVERSION
Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению