#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;. Если нет - миграция данных и в худшем случае програм, которые не совсем понимают новую кодировку. Подробнее читаем тут или в общих чертах по-русски тут.
Комментариев нет:
Отправить комментарий