В оракуле, как мне изменить сеанс отображения UTF8?
Я не могу понять синтаксис Oracle за всю жизнь. Это Oracle 10g
Моя сессия NLS_LANGUAGE в настоящее время по умолчанию отключена от AMERICAN.
Мне нужно иметь возможность отображать символы UTF8.
Ниже приведены некоторые из моих попыток: все неверные:
ALTER SESSION SET NLS_LANGUAGE='UTF8'
ALTER SESSION SET NLS_LANGUAGE='AMERICAN_AMERICA.UTF8'
Какая секретная команда?
Ответы
Ответ 1
Набор символов является частью локали, которая определяется значением NLS_LANG
. В качестве документация ясно, это переменная операционной системы:
NLS_LANG
устанавливается как среда переменная на платформах UNIX. NLS_LANG
установлен в реестре Windows платформы.
Теперь мы можем использовать ALTER SESSION
для изменения значений для нескольких элементов локали, NLS_LANGUAGE и NLS_TERRITORY. Но нет, увы, набор символов. Причина этого несоответствия - я думаю, - что язык и территория просто влияют на то, как Oracle интерпретирует сохраненные данные, например. отображать ли запятую или период при отображении большого числа. Wheareas набор символов касается того, как клиентское приложение отображает отображаемые данные. Эта информация подхватывается клиентским приложением во время запуска и не может быть изменена изнутри.
Ответ 2
Хорошо, за http://www.oracle.com/technology/tech/globalization/htdocs/nls_lang%20faq.htm:
NLS_LANG не может быть изменен с помощью ALTER СЕССИЯ, NLS_LANGUAGE и NLS_TERRITORY может. Однако NLS_LANGUAGE и/или NLS_TERRITORY не может быть задано как "автономный", параметров в окружающей среде или реестра на клиенте.
Очевидно, что "правильное" решение, прежде чем вообще войти в Oracle, задает следующую переменную среды:
export NLS_LANG=AMERICAN_AMERICA.UTF8
Oracle получает большой толстый F для удобства использования.
Ответ 3
Поэтому перед запуском '$ sqlplus' в ОС запустите следующие действия:
-
В Windows
установить NLS_LANG = AMERICAN_AMERICA.UTF8
-
В Unix (Solaris и Linux, centos и т.д.)
экспорт NLS_LANG = AMERICAN_AMERICA.UTF8
Было бы также целесообразно установить переменную env в ваш '.bash_profile' [при запуске script]
Это место, где обычно устанавливаются другие переменные ORACLE (ORACLE_SID, ORACLE_HOME).
просто fyi - Разработчик SQL хорош при отображении/обработке неанглийских символов UTF8.