Настройки в клиенте и сервере Oracle - PullRequest
1 голос
/ 04 августа 2011

Настройки сервера oracle, такие как атрибуты nls_date_format, .... (я не знаю, сколько таких настроек есть), будут загружены в клиент oracle, работающий на другой машине, при подключении к SQL * плюс, используя имя хоста сервера?

Или клиент будет обслуживать свой другой набор, предполагая, что клиент является SQL * Plus.

Если клиент имеет свои собственные настройки, есть ли способ, если я могу установить те же настройки, что и сервер. например, экспортировать все настройки с сервера и импортировать эти настройки на клиент.

Если клиент SQL Developer, есть ли способ сохранить синхронизацию. между настройками сервера и клиента.

1 Ответ

1 голос
/ 04 августа 2011

Вы можете запросить настройки (около 20 переменных) из NLS-просмотров (NLS_DATABASE_PARAMETERS, NLS_INSTANCE_PARAMETERS, NLS_SESSION_PARAMETERS). По show parameter nls вы можете просмотреть фактические настройки в SQL * Plus.

Они могут быть изменены sysdba несколькими способами:

  • Параметры базы данных читаются из файла (ов) pfile при запуске. Их можно изменить с помощью ALTER SYSTEM SCOPE=SPFILE, если вы используете spfile. Если вы используете pfile, вы должны отредактировать его вручную
  • Параметры экземпляра устанавливаются ALTER SYSTEM SCOPE=MEMORY и будут потеряны при выключении
  • Оба одновременно можно изменить с помощью SCOPE=BOTH. Это будет применено немедленно и переживет остановку

Клиент может переопределить это для своего собственного сеанса (по крайней мере?) Двумя способами:

  • Установите для своей сессии ALTER SESSION в SQL * Plus
  • Установка переменных среды перед запуском клиента через export NLS_...=... в оболочке

Последний переопределяет более ранние, поэтому SESSION бьет INSTANCE, что съедает DATABASE.

По вашему вопросу: вы можете использовать SELECT * FROM NLS_INSTANCE_SETTINGS и применить их к текущему сеансу с помощью ALTER SESSION SET ... для каждой из этих переменных (возможно, с помощью некоторой процедуры PL / SQL). Другой способ - просто сбросить все параметры сеанса, чтобы использовать параметры экземпляра.

Если вы не устанавливаете переменные NLS (особенно NLS_LANG) в своей среде, ваш сеанс должен совпадать с сеансом экземпляра или базы данных. На практике это никогда не будет работать так, как ожидалось, поскольку у вас всегда есть некоторые настройки locale, которые приводят к потере результатов в SQLP * Plus. ; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...