Я нашел в этой статье, что начиная с Oracle 10 г, существует способ заставить конкретную сессию соединения сравнить нечувствительные к регистру строки, не нуждаясь ни в каких сумасшедших функциях SQL, с помощью ALTER SESSION
.
Делает любой знает, мог ли в 11 г быть способ сделать базу данных, чтобы всегда работать в этом режиме по умолчанию для всех новых сессий соединения, таким образом, избавив от необходимости выполнение ALTER SESSION
s каждый раз Вы соединяетесь?
Или возможно, дополнительный параметр Вы могли указать на своей строке подключения, которая включит то же?
Можно было просто установить параметры NLS_SORT
, NLS_COMP
, упомянутые в статье в качестве значений в init-файле Oracle с помощью пункта alter system set
.
Информация об использовании системных команд alter находится здесь.
Вот хорошая ссылка на корректное использование параметров NLS_*
. Обратите внимание, что некоторые настройки параметра NLS_SORT могут/могут вызывать проблемы с производительностью, а именно, когда он не установлен в BINARY. В документах Oracle указано:
Установка NLS_SORT на что-либо другое. чем BINARY заставляет использовать полное сканирование таблицы, независимо от путь, выбранный оптимизатором. БИНАРИЯ является исключением, потому что индексы построенный в соответствии с двоичным порядком Ключи. Таким образом, оптимизатор может использовать индекс, удовлетворяющий пункту "ЗАКАЗЧИК ПО ЗАКАЗЧИКУ когда NLS_SORT установлен на BINARY. Если NLS_SORT устанавливается на любой язык. по типу, оптимизатор должен включать в себя полное сканирование таблицы и полный вид в план выполнения.
Вы можете!
Заставить свой дружелюбный DBA устанавливать эти параметры:
ALTER SYSTEM SET NLS_COMP=LINGUISTIC SCOPE=SPFILE;
ALTER SYSTEM SET NLS_SORT=BINARY_AI SCOPE=SPFILE;
Это взято из моей короткой статьи о , Как сделать Oracle Case Insensitive