Кодировка соединения по умолчанию (SET NAMES)
Функция
Определение оператора задания кодировки, используемой клиентским приложением по умолчанию для текущего соединения с БД.
Спецификация
::=Общие правила
-
Для использования команды в БД должна быть создана и загружена необходимыми данными системная таблица кодировок
$$$CHARSET. -
<Имя кодировки>задает кодировку, которая будет применяться клиентским приложением по умолчанию в том соединении с БД, по которому подана командаSET NAMES. -
Если
<кодировка соединения по умолчанию>не задана (после установления соединения с БД), выбор кодировки соединения выполняется по следующим правилам:-
если определена переменная окружения
LINTER_CP, то используется определяемая этой переменной кодировка; -
если переменная
LINTER_CPне определена, используется текущая кодировка операционной системы, в которой работает клиентское приложение.
-
-
<Кодировка соединения по умолчанию>может быть установлена в любой момент выполнения соединения с БД и остается неизменной до отсоединения от БД или до изменения ее другой<кодировкой соединения по умолчанию>. -
Команда
SET NAMESпозволяет создавать по умолчанию все таблицы и символьные столбцы в них в указанной кодировке, потому что при создании таблиц (столбцов) используется следующий приоритет выбора кодировки:-
используется кодировка, заданная для таблицы или столбца непосредственно в SQL-запросе (
CREATE TABLE,ALTER TABLE ADD COLUMNи т.п.) – если задана; -
иначе кодировка, заданная для канала по
SET NAMES– если задана; -
иначе кодировка, заданная для БД по
SET DATABASE DEFAULT CHARACTER SET– если задана; -
иначе кодировка, заданная для канала другим способом (например, через переменную среды окружения
LINTER_CP).
-
Пример
set names CP866;