Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Трабл с ALTER SESSION SET NLS_COMP=LINGUISTIC;  [new]
Гуэст
Guest
Подскажите в чем я не прав.
Взял из прмера и запускаю "ALTER SESSION SET NLS_COMP=LINGUISTIC;"
и получаю
"ORA-12705: invalid or unknown NLS parameter value specified".
Версия - Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Prod

С другой стороны NLS_COMP имеет варианты BINARY или ANSI. Тогда откуда в примере взялось LINGUISTIC?

Общая цель ALTERA - case-insensitive поиск по текстовым полям. для поиска по "=" достаточно
ALTER SESSION SET NLS_SORT='BINARY_CI';
ALTER SESSION SET NLS_COMP=ANSI;
Но для like это не срабатывает. Я так понял, что нужно NLS_COMP=LINGUISTIC. Но ALTER не проходит. Плюс к этому в sys.v$nls_valid_values нет значений для COMP. Где тогда можно посмотреть список возможных значений для NLS_COMP.

Господа знатоки, помогите разобраться.
21 апр 06, 14:12    [2589509]     Ответить | Цитировать Сообщить модератору
 Re: Трабл с ALTER SESSION SET NLS_COMP=LINGUISTIC;  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18363
Гуэст
ALTER SESSION SET NLS_SORT='BINARY_CI';
ALTER SESSION SET NLS_COMP=ANSI;
Но для like это не срабатывает.

И не сработает.
На 10 используйте regexp_like, на младших версиях - where upper(field) like upper(:substring).
Можно оптимизировать - начиная с fbi и заканчивая специально выделенным атрибутом, заполняемым по upper.
21 апр 06, 15:02    [2589898]     Ответить | Цитировать Сообщить модератору
 Re: Трабл с ALTER SESSION SET NLS_COMP=LINGUISTIC;  [new]
Гуэст
Guest
andrey_anonymous
Гуэст
ALTER SESSION SET NLS_SORT='BINARY_CI';
ALTER SESSION SET NLS_COMP=ANSI;
Но для like это не срабатывает.

И не сработает.
На 10 используйте regexp_like, на младших версиях - where upper(field) like upper(:substring).
Можно оптимизировать - начиная с fbi и заканчивая специально выделенным атрибутом, заполняемым по upper.

Спасибо.
В принципе, с upper(field) like и fbi знаком. А regexp_like не использует индексы. Задача была именно подшаманить так, что бы меньше править SQL в программе.
24 апр 06, 14:24    [2596231]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить