Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
Определяет новое преобразование кодировок.
CREATE [DEFAULT] CONVERSION <name>
FOR <source_encoding> TO <dest_encoding> FROM <function_name>
CREATE CONVERSION определяет новое преобразование между кодировками символьных наборов. Кроме того, преобразования, помеченные как DEFAULT, могут использоваться для автоматического преобразования кодировок между клиентом и сервером. Для этой цели необходимо определить два преобразования: из кодировки A в B и из кодировки B в A.
Для создания преобразования необходимо иметь привилегию EXECUTE на функцию и привилегию CREATE на целевую схему.
conv_proc(
integer, -- source encoding ID
integer, -- destination encoding ID
cstring, -- source string (null terminated C string)
internal, -- destination (fill with a null terminated C string)
integer -- source string length
) RETURNS void;
Используйте команду DROP CONVERSION, чтобы удалить пользовательское преобразование.
Привилегии, необходимые для создания преобразования, могут измениться в будущих версиях.
Обратите внимание, что в данной версии Database пользовательские функции, используемые в пользовательских преобразованиях, должны быть определены как IMMUTABLE. Все скомпилированные модули (файлы разделяемых библиотек) для пользовательских функций должны находиться в одинаковых каталогах на каждом хосте в массиве Database (координаторе и всех сегментах). Эти каталоги также должны входить в переменную окружения LD_LIBRARY_PATH, чтобы сервер мог найти файлы.
Создание преобразования из кодировки UTF8 в LATIN1 с использованием функции myfunc:
CREATE CONVERSION myconv FOR 'UTF8' TO 'LATIN1' FROM myfunc;
CREATE CONVERSION является расширением Database. В стандарте SQL нет оператора CREATE CONVERSION, однако существует оператор CREATE TRANSLATION, который аналогичен по назначению и синтаксису.