2011-02-10 7 views
0

У меня есть база данных Oracle со следующими настройкамимагазин кириллица в Oracle

NLS_CHARACTERSET     EE8MSWIN1250 
NLS_NCHAR_CHARACTERSET   AL16UTF16 
NLS_LANGUAGE      AMERICAN 

Я создал тест таблицу с одним столбцом типа NVARCHAR2, где я собираюсь хранить кириллицы.

Я использую SQL Developer для подключения БД.

Проблема заключается в том, что я кладу кириллическую цепочку в БД с использованием ячейки SQL Developer, данные хранятся правильно. Но когда я использую INSERT-запрос с теми же данными, используя N '', или нет, данные сохраняются как вопросительные знаки.

Интересно, что запрос, сгенерированный SQL Developer, и написанный мной, идентичен.

Я решил эту проблему, изменив NLS_CHARACTERSET на UTF8, но на рабочем сервере я не могу этого сделать.

IMO это должен быть способ хранения кириллицы в этой БД надлежащим образом с использованием запроса, если SQL Developer может это сделать.

С уважением

+0

Какой инструмент вы используете для выполнения вставки? –

+0

Каковы настройки сеанса NLS в обоих случаях? –

ответ

0

В зависимости от ODBC/JDBC в использовании, настройка локализации на вашем компьютере может переопределить любые значения конфигурации в базе данных. Попробуйте использовать ALTER SESSION и установите правильные параметры NLS перед выполнением запроса и посмотрите, поможет ли это. Разработчик SQL может сделать это за кулисами при редактировании ячейки данных.