Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

изменение кодировки oracle sql

#sql #oracle


Имеется бд oracle , в которой nls_lang установлено как russian_russia. Необходимо
поменять кодировку на american.

как я проверяю кодировку : select * from nls_database_parameters.

Пробовал изменить реестр и установить кодировку, что мне нужна. Пробовал прописать
set nls_lang = american_america, но ничего не работает. Переустанавливать не хочется. 

Может есть работающие алгоритмы смены кодировки?
    


Ответы

Ответ 1



Если вы хотите установить окружение, то - set NLS_LANG=american_america. Так Вы измените окружение только для клиентских програм. Я так понял Вам надо изменить на уровне ДБ. Тогда надо в файле параметрах init.ora прописать NLS_LANGUAGE и NLS_TERRITORY отдельно. NLS_LANG не используется в init.ora. UPD Выше сказаное касалось языка и территории. Кодировкa устанавливается в NLS_CHARACTERSET, т.е. v 3-й составляющей NLS_LANG (languge_territory.characterset). Кодировку можно изменить только, если новая кодировка является строгим супермножеством старой кодировки, т.е. нельзя поменять WE8ISO8859P5 на AL32UTF8, а US7ASCII можно всегда. Если повезло, то alter database character set AL32UTF8;. Если нет - миграция данных и в худшем случае програм, которые не совсем понимают новую кодировку. Подробнее читаем тут или в общих чертах по-русски тут.

Комментариев нет:

Отправить комментарий