Sybase ASE: показывает кодировку символов, используемую базой данных

#character-encoding #sybase #database-administration #sap-ase

#кодировка символов #sybase #администрирование базы данных #sap-ase

Вопрос:

Я работаю над базой данных Sybase ASE и хотел бы знать кодировку символов (UTF8 или ASCII или что-то еще), используемую databae.

Какая команда показывает, какую кодировку символов использует база данных?

Ответ №1:

Команда, которую вы ищете, на самом деле является системной хранимой процедурой:

 1> sp_helpsort
2> go
... snip ...
Sort Order Description
 ------------------------------------------------------------------
 Character Set = 190, utf8
     Unicode 3.1 UTF-8 Character Set
     Class 2 Character Set
 Sort Order = 50, bin_utf8
     Binary sort order for the ISO 10646-1, UTF-8 multibyte encodin
     g character set (utf8).
... snip ...
  

Из этого вывода мы видим, что этот конкретный сервер данных ASE был настроен с набором символов utf8 по умолчанию и порядком сортировки binary по умолчанию ( bin_utf8 ) . Это означает, что все данные хранятся как utf8 и все операции индексации / сортировки выполняются с использованием binary порядка сортировки.

Имейте в виду, что ASE может выполнять преобразования набора символов (для чтения и записи) на основе конфигурации набора символов клиента. Хотя успешность указанных преобразований будет зависеть от рассматриваемых наборов символов (например, клиент, подключающийся к utf8 , может обнаружить, что многие символы не могут быть преобразованы для хранения на сервере данных, определенном с набором символов по умолчанию iso_1 ).

Ответ №2:

С помощью запроса:

 select
cs.name as server_character_set,
cs.description as character_set_description
from
master..syscharsets cs left outer join
master..sysconfigures cfg on
    cs.id = cfg.value
where
cfg.config = 131
  

Пример вывода:

 server_character_set    character_set_description
utf8    Unicode 3.1 UTF-8 Character Set