2015-07-21 5 views
2

Почему в Oracle есть три логические различных представления для N АЦИОНАЛЬНОГО L anguage S оддержки?Session против Instance против базы данных в Oracle Настройке NLS

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

Как насчет сеанса против экземпляра?

Я выполнил запрос, чтобы сравнить значения между ними, и вот результаты (я заметил, что NLS_DATABASE_SETTINGS имеет больше параметров, все параметры, которые есть у других, плюс еще несколько, следовательно, я делаю внешнее соединение с ним, поскольку мой запуск пункт):

SELECT 
    db.parameter as parameter, 
    db.value as database_value, 
    s.value as session_value, 
    i.value as instance_value 
FROM 
    nls_database_parameters db 
LEFT JOIN 
    nls_session_parameters s 
ON s.parameter = db.parameter 
LEFT JOIN 
    nls_instance_parameters i 
ON i.parameter = db.parameter 
ORDER BY parameter 

enter image description here

Я пытаюсь копать глубоко и решить проблему моего клиента PL/SQL для разработчиков, в одиночку, не будучи в состоянии отобразить на иврите символы. Все остальные в компании.

Обновление: проблема отображения символов на иврите (и это не вопрос здесь) была решена после решения, которое я опубликовал here.

ответ

4

Хороший вопрос, я не знал разницы между ними, пока не сделал некоторые исследования. есть посмотреть на этом сайте National-Language-Support

NLS_DATABASE_PARAMETERS

При создании базы данных, вы говорите это, как вы собираетесь обрабатывать или не справиться с глобализацией базы данных. В представлении NLS_DATABASE_PARAMETERS отобразятся данные, которые были установлены на времени создания базы данных. Они фиксируются на уровне базы данных и не могут быть изменены. Хорошо, что, хотя они устанавливают некоторые изваши варианты в будущем, имея в виду, что ваша база данных говорит глобально, они используются только тогда, когда контрольные ограничения применяются в базе данных . Поэтому вам не нужно будет беспокоиться о том, что эти настройки находятся после создания базы данных.

NLS_INSTANCE_PARAMETERS

Как вы знаете, вы можете изменять различные параметры для экземпляра либо через файл INIT.ORA или SPFILE. В представлении NLS_INSTANCE_PARAMETERS будут отображаться те настройки, которые установлены на уровне экземпляра .

NLS_SESSION_PARAMETERS

Кроме того, у вас есть возможность установить параметры глобализации каждого отдельного сеанса и в NLS_SESSION_PARAMETERS просмотра покажет вам, что текущие настройки. Это представление относится к запросу сеанса .

+1

@PatrickHofman, потому что каждый из них имеет свою «работу», как описано выше, NLS_DATABASE_PARAMETERS при создании базы данных, как и для NLS_SESSION_PARAMETERS покажет вам установку индивидуальной настройки, в моем ответе я покрывал большую часть. если он прочитает полную статью, он поймет многое. – Moudiz

+0

Первые вещи: через другие вопросы я сам тоже многому научился :-) – Veverke

+1

Патрик, Мудиз прав, это добавляет ответа. Я думаю, что в конечном итоге речь идет о различии между экземпляром и сеансом в Oracle DB. Но это определенно добавляет полезную информацию. – Veverke