powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / кодировка Oracle
8 сообщений из 8, страница 1 из 1
кодировка Oracle
    #35935087
XmarkerX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добрый день.

подскажите пжст...
каким образом при коннекте через ADO к Ораклу
менять кодировку,
например по умолчанию стоит "AMERICAN_AMERICA.RU8PC866"
а надо "Russian_CIS.CL8MSWIN1251"

править параметр NLS_LANG вручную в реестре - не вариант.

ну думаю вопрос понятен.
...
Рейтинг: 0 / 0
кодировка Oracle
    #35935260
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. можно в начале приложения выдавать команду ALTER SESSION (или execute immediate 'ALTER SESSION'). Правда, таким таким способом удастся поменять NLS_LANGUAGE и NLS_TERRITORY, но не NLS_CHARACTERSET

2. можно запускать программу из bat-файла, где первой командой устанавливать NLS_LANG

3. ну и уже упомянутое NLS_LANG в реестре.

Кстати, в курсе, на что влияют каждый из этих параметров? Может их менять в программе и необязательно?
На всякий - все эти и другие вопросы описаны в томе оракловой доки - Globalization Support Guide
...
Рейтинг: 0 / 0
кодировка Oracle
    #35936290
XmarkerX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55,
возможно я не верно изложил суть вопроса...

по молчанию кодировка базы - "AMERICAN_AMERICA.RU8PC866"
когда я делаю выборку из базы, в результатате получаю каракули dos кодировки

так вот, что мне сделать, чтобы текст возвращаемого запроса
отображался в WIN1251.

возможно каким-то образом мне надо в свойствах
моего приложения (windows form C#)
указать необходимые параметры.
...
Рейтинг: 0 / 0
кодировка Oracle
    #35936352
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OK
1. на отображение записей на русском влияет только charset, остальные части - на другое, поэтому достаточно установить NLS_LANG = AMERICAN_AMERICA.CL8MSWIN1251
(тем паче, что NLS_TERRITORY = CIS для Oracle10 устарела, там используется RUSSIA)

2. перекодировкой сервер->клиент занимается клиент Oracle, точнее его часть, называемая Oracle*Net, так что не думаю, что на это как-то повлияет свойства приложения

3. клиент Oracle берет кодировку клиента из переменной окружения NLS_LANG или ключа реестра NLS_LANG, если они не заданы, то устанавливается некоторое значение по умолчанию
...
Рейтинг: 0 / 0
кодировка Oracle
    #35936405
XmarkerX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55,
другими словами, кроме как лезть в реестр и править NLS_LANG
нет методов решения вопроса?
...
Рейтинг: 0 / 0
кодировка Oracle
    #35936412
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XmarkerXtru55,
другими словами, кроме как лезть в реестр и править NLS_LANG
нет методов решения вопроса?

Либо bat-файл с командой SET, о чем я уже упоминал...
...
Рейтинг: 0 / 0
кодировка Oracle
    #35936497
XmarkerX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55
Либо bat-файл с командой SET, о чем я уже упоминал...

а можно подробней об этом?
немного не догоняю.
...
Рейтинг: 0 / 0
кодировка Oracle
    #35938091
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чего тут непонятного?

Код: plaintext
1.
2.
3.
4.
5.
6.
test.bat
---------

set NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251

sqlplusw /nolog @test.sql
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / кодировка Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]