Хранить кириллицу в Oracle - PullRequest
       14

Хранить кириллицу в Oracle

1 голос
/ 10 февраля 2011

У меня есть база данных 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 может сделать это.

Привет

1 Ответ

0 голосов
/ 16 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...