Делать сортировку Oracle без учета регистра?
Это связано с созданием сортировки оракула без учета регистра. Большинство решений, которые я видел, упоминают настройки ниже параметров сеанса:
ALTER SESSION SET NLS_COMP = LINGUISTIC;
ALTER SESSION SET NLS_SORT = BINARY_CI;
По умолчанию NLS_COMP - BINARY.
Я обнаружил, что если я просто установлю NLS_SORT в BINARY_CI, не устанавливая NLS_COMP в LINGUISTIC, это все равно будет работать, то есть сортировка оракула становится нечувствительной к регистру. Есть ли какое-либо преимущество для установки параметра NLS_COMP?
1 ответ
NLS_COMP
а также NLS_SORT
имеют немного разные эффекты. NLS_COMP
это, как следует из названия, для сравнения. NLS_SORT
это, как следует из названия, для сортировки. настройка NLS_COMP
в LINGUISTIC
заставляет сравнения следовать правилам сортировки, заставляет сравнения использовать NLS_SORT
установка. Вы можете увидеть разницу при попытке:
SELECT 1 FROM DUAL WHERE 'A' = 'a';
С NLS_COMP = BINARY
Сравнение дает ложное. С NLS_COMP = LINGUISTIC
а также NLS_SORT = BINARY_CI
Сравнение дает истину.
Нужно ли устанавливать это, зависит от того, какие результаты вы хотите получить от своих запросов.