Oracle на AIX и русский язык в запросе

Pawel
Дата: 01.10.2004 18:34:17
Есть Oracle 8.1.7 установленный на AIX'е. Часть полей таблицы содержит в себе русский текст. Задача стоит следующая: получить выборку данных путем запуска локального sqlplus (на том же самом AIX'е) со скриптом из текстового файла. Причем в части условий where идет сравнение строк русского текста. В итоге возвращается 0 записей, хотя известно, что они в базе есть.

В каком месте может возникать проблема с перекодировкой: операционная система, клиент, sqlplus? С какой стороны начать решать проблему?

NLS_LANG пытался выставлять разный, в том числе и русский RUSSIAN_CIS.CL8ISO8859P5
igor2222
Дата: 01.10.2004 19:32:15
Начать с того, что сообщить как работают выборки например в sql окне plsql девелопера. Проблема только когда запускаем в sql plus?
Pawel
Дата: 01.10.2004 19:41:06
В SQLNavigator'е весь русский текст отображается одним и тем же символом (что-то вроде i с двумя точками наверху), независимо от выбираемого шрифта... В sqlplus'е вместо русских букв выдается псевдографика (один и и тот же символ).
igor2222
Дата: 01.10.2004 19:43:57
Дк у Вас таки проблемы с кодировкой. Кодировка клиента с навигатором и серверная совпадают? Если да, то похоже что у Вас и в таблицах абракадабра. Используйте CL8MSWIN1251 для русских текстов.
Elic
Дата: 01.10.2004 20:49:51
2Pawel
1) NLS_LANG (characterset) нужно настраивать на клиенте (в окружении клиента) и в соответствии с возможностью клиентского приложения правильно отображать заданную кодировку. Например на винде для гуишного SQL*Plus-а и SQLNavigator-а - CL8MSWIN1251, а для консольного SQL*Plus-а - RU8PC866.
2) Если скрипт содержит строковые литералы с русскими буквами, то кодировка скрипта должна совпадать с кодировкой клиента.
Pawel
Дата: 01.10.2004 21:11:54
А для sqlplus'a установленного на AIX'е какую кодировку выставлять?
Elic
Дата: 01.10.2004 21:52:16
- ту, на которую консоль AIX-а настроена и сможет отобразить правильно - если результат необходимо наблюдать на экране;
- в соответствии с желаемой кодировкой файла - если результат записывается в файл.