Определение оператора задания кодировки, используемой клиентским приложением по умолчанию для текущего соединения с БД.
::=
Для использования команды в БД должна быть создана и загружена необходимыми данными системная таблица кодировок $$$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;