Захотелось мне определённости с кодировкаами. Действительно, Oracle
поддерживает много языков, кодировок которые можно применять в приложениях.
Причем, изменять эти настройки можно многочисленными путями что делает
результат не таким уж и предсказуемым. Довольно универсальный метод,
определить тем или иным способом NLS_LANG, например, RUSSIAN_CIS.RU8PC866.
Hапример, перед вызовом sqlplus, выполняющего SQL скрипт. Однако, существует
интегрированая система батников, использующая различные SQL скрипты как
плагины и определяющая NLS_LANG=AMERICAN_CIS.CL8MSWIN1251 и скрипт должен
быть использован внутри этой системы. В таком случае, было бы разумно
установить языковые настройки непосредственно изнутри SQL скрипта. LANGUAGE
и TERRITORY меняются легко но способа изменить CHARACTERSET я не нашел. Из
объяснений старшего специалиста я понял, что charset задается при создании
пользовательской сессии и изменить его нельзя. Как можно решить/обойти
проблему?
И второй вопрос: Использую ODBC Microsoft драйвер для Oracle из Perl
скрипта. Перед выполнением скрипта задаю требуемый NLS_LANG. Однако,
проверив параметры сессии обнаруживаю что опять же, language и territory
поменялись, но characterset остался CL8MSWIN1251. Та же самая проблема? Что
можно придумать здесь чтобы разные скрипты могли использовать разные
charsets?
Бардак с кодировками связан с желанием использовать одну и ту же систему для
решение существенно разных задач.
WBR Anatoly
AG> characterset остался CL8MSWIN1251. Та же самая проблема? Что можно
AG> придумать здесь чтобы разные скрипты могли использовать разные
AG> charsets?
AG> Бардак с кодировками связан с желанием использовать одну и ту же
AG> систему для решение существенно разных задач.
Решишь вопрос - сообщи в эху, плиз.
Hа АСП2.HЕТ СШарп та же проблема с кодировкой American_America.Iso8859P1
Пока здесь не очень помогли.
Best regards,
Sergey E-mail: zah.asu(сoбaкa)bmz.gomel.by
> AG> characterset остался CL8MSWIN1251. Та же самая проблема? Что можно
> AG> придумать здесь чтобы разные скрипты могли использовать разные
> AG> charsets?
> Решишь вопрос - сообщи в эху, плиз.
> Hа АСП2.HЕТ СШарп та же проблема с кодировкой American_America.Iso8859P1
>
> Пока здесь не очень помогли.
А какие вообще были/есть идеи на этот счёт? Причем, изменение глобальной
переменной окружения либо параметра в реестре NLS_LANG -
меняются language и terrirory но не characterset. Причем, перезагрузка
dllhost не помогает, т.е. драйвер не "не может" а "не хочет" сменить
mswin1251 на что другое...
WBR Anatoly
> Hello All,
> И второй вопрос: Использую ODBC Microsoft драйвер для Oracle из Perl
> скрипта. Перед выполнением скрипта задаю требуемый NLS_LANG. Однако,
> проверив параметры сессии обнаруживаю что опять же, language и territory
> поменялись, но characterset остался CL8MSWIN1251. Та же самая проблема?
В перле как задаёшь кодировку?
$ENV{NLS_LANG}='X_Y.CL8' ?
у меня так работает.
--
остаюсь искренне ваш,
Станислав Сухолёт
WBR Anatoly.