NLS_CHARACTERSET в nls_session_parameters возвращает None - PullRequest
0 голосов
/ 15 января 2020

Приложение, которое я использую с Oracle, похоже, имеет проблемы с символами, и я выполнил следующие запросы, чтобы проверить CHARACTERSET.

  • SELECT * FROM nls_session_parameters WHERE PARAMETER='NLS_CHARACTERSET';
  • SELECT * FROM nls_database_parameters WHERE PARAMETER='NLS_CHARACTERSET';

Второй запрос из nls_database_parameters возвращает AL32UTF8 .

Но первый запрос, похоже, возвращает Нет .

Я читал, что nls_session_parameters имеет приоритет над nls_database_parameters , но в этом случае, если для него не установлено никакого значения, он упадет вернуться к nls_database_parameters , или есть что-то, что необходимо настроить для установки nls_session_parameters .

Спасибо за любой вклад в это.

Ответы [ 2 ]

1 голос
/ 15 января 2020

С Oracle Документы

NLS_SESSION_PARAMETERS показывает параметры NLS и их значения для сеанса, который запрашивает представление. Он не показывает информацию о наборе символов.

В основном NLS_SESSION_PARAMETERS не будет иметь вызванного параметра NLS_CHARACTERSET.

Набор символов является частью локали, которая определяется значением NLS_LANG.

NLS_LANG устанавливается в качестве переменной среды на UNIX платформах. NLS_LANG устанавливается в реестре на Windows платформах.

Следовательно, проверьте NLS_LANG. Также эта информация собирается клиентским приложением во время запуска и не может быть изменена изнутри.

0 голосов
/ 15 января 2020

NLS_CHARACTERSET - это набор символов, который используется базой данных . Ваш сеанс (т. Е. Клиент) ничего не хранит, поэтому NLS_CHARACTERSET не существует.

Я предполагаю, что вы ищете NLS_LANG, который сообщает базе данных, какой набор символов используется клиентом. Вы не можете запросить NLS_LANG из любой базы данных / таблицы, вы должны проверить настройки в вашем клиенте. Вы можете установить NLS_LANG только на стороне клиента, а не на стороне базы данных.

Обратите внимание, что некоторые клиенты (например, Java клиенты на основе JDB C) не используют настройку NLS_LANG, они используют другой механизм глобализации.

...