греческий набор символов в оракуле - PullRequest
1 голос
/ 18 мая 2011

У меня проблема с греческими символами в оракуле 11g.Это только показывает некоторые греческие символы и все другие с '?'.Я сделал все вышеперечисленное, что нашел в интернете, но не могу это исправить.

Я использую win vista (рус / англ версия) и настраиваю греческий mui.Я изменил NLS_LANG в реестре на EL8MSWIN1253 (я изменил это), моя система nls_lang тоже в реестре 1253.

Когда я звоню:

SELECT * FROM NLS_INSTANSE_PARAMETERS

Я получаю NLS_LANGUAGE=AMERICANи NLS_TERRITORY=AMERICA.Я установил оракул с набором символов Unicode.

Я пытался позвонить

ALTER SESSION SET NLS_LANG=GREEK_GREECE.EL8MSWIN1253

, но это не сработало.Когда я звоню

ALTER SESSION SET NLS_LANGUAGE=GREEK

или

ALTER SESSION SET NLS_TERRITORY=GREECE

Oracle говорит: "Сессия изменена", но ничего не меняется.

Может кто-нибудь помочь мне?

Ответы [ 4 ]

1 голос
/ 06 апреля 2018

В Windows: не путайте шрифты, используемые в командной оболочке / командной строке (под Windows), со шрифтами Windows (например, шрифты, используемые в приложениях Windows, например в SQL Developer).Если вы хотите правильно отображать греческие символы в SQL * Plus в командной строке:

Определите активную кодовую страницу:

C:\> chcp

Система должна ответить номером кодовой страницы.Это для греческого языка должно быть:

Активная кодовая страница: 737

737 соответствует набору символов клиента EL8PC737 Oracle (третья часть NLS_LANG).См .: http://www.oracle.com/technetwork/database/database-technologies/globalization/nls-lang-099431.html#_Toc110410555

Установите переменную среды Oracle NLS:

C:\> set NLS_LANG= GREEK_GREECE.EL8PC737

Теперь, войдя в SQL * Plus, вы сможете правильно видеть греческие символы в результатах запроса.

Выполните аналогичные настройки для любого другого национального языка.

Panos Zafiropoulos

0 голосов
/ 19 мая 2011

Просто чтобы указать, что преобразование набора символов происходит ОБА. Таким образом, если клиент вставляет «греческий» символ, когда его сеанс базы данных указывает на американский набор символов, то этот символ будет преобразован из американский в UTF-8 (или любой другой набор символов БД). Последующий выбор в сеансе с греческим набором символов приведет к переводу символа с UTF-8 на греческий, что может быть не тем, с чего вы начали.

Используйте select DUMP(col), чтобы увидеть их байты, записанные в базе данных, затем вы можете определить, имеет ли база данных правильное представление символа.

0 голосов
/ 16 августа 2017

Щелкните правой кнопкой мыши на моем компьютере> Настройки системы Advance> Advance> Переменные среды

Нажмите Системная переменная в новой TAB

Имя переменной: NLS_LANG Значение переменной: GREEK_GREECE.EL8MSWIN1253

Имя переменной: NLS_NUMERIC_CHARACTERS Значение переменной:.,

0 голосов
/ 18 мая 2011

Вы установили NLS_LANG в реестре на .EL8MSWIN1253 (обратите внимание на точку префикса)?

Формат NLS_LANG такой:

NLS_LANG = language_territory.charset

... и Руководство по поддержке глобализации баз данных Oracle® пишет:

Все компоненты определения NLS_LANG являются необязательными;любой элемент, который не указан, использует его значение по умолчанию. Если вы указываете территорию или набор символов, то вы должны включить предшествующий разделитель [подчеркивание (_) для территории, точка (.) Для набора символов ].В противном случае значение анализируется как имя языка.

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