Кодировка данных пользовательских таблиц

Функция

Определение оператора задания кодировки для представления символьных данных в пользовательских таблицах.

Спецификация
   
< пользовательская кодировка >::=
SET DATABASE DEFAULT CHARACTER SET имя кодировки
Синтаксические правила
  1. < Имя кодировки > должно представлять имя любой загруженной в БД кодировки (в том числе это может быть и MBCS-кодировка).

Общие правила
  1. Для использования команды в БД должна быть создана и загружена необходимыми данными системная таблица кодировок $$$CHARSET.

  2. Заданная кодировка будет использована при создании всех пользовательских таблиц.

  3. Если < пользовательская кодировка > не указана в запросе создания таблицы, то при создании столбцов символьных типов (CHAR, VARCHAR) пользовательских таблиц применяется следующий алгоритм выбора кодировки (в порядке уменьшения приоритета):

    • используется кодировка, указанная в запросе создания таблицы

      CREATE TABLE T3 CHARACTER SET CP437(C CHAR(10));
    • если кодировка явно задана для столбца, то она и используется для этого столбца

      CREATE TABLE T3 (C CHAR(10) CHARACTER SET CP437);
    • если кодировка явно не задана для столбца, но задана для всей таблицы, то она используется для всех столбцов таблицы

      CREATE TABLE T3 CHARACTER SET CP437(C CHAR(10));
    • если кодировка для таблицы не задана, а по каналу был выполнен SQL-запрос SET NAMES (например, SET NAMES CP950;), т.е. установлена кодировка канала, то используется она;

    • если кодировка канала не задана, а установлена кодировка по умолчанию для пользовательских таблиц БД SQL-запросом SET DATABASE DEFAULT CHARACTER SET, то используется она;

    • если кодировка по умолчанию для пользовательских таблиц БД не задана, то используется (если задана) кодировка системного словаря (SQL-запрос SET DATABASE NAMES);

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