Знаки вопросов вместо кириллицы при выводе данных из бд Oracle (C#)

Hawk15
Дата: 13.12.2012 18:58:45
Здравствуйте. Ситуация следующая: есть база данных Oracle 9.2. Задача - выгрузить нужные данные из бд и поместить в новую бд. Язык - C#. Физического доступа к серверу с базой нет, менять там ничего не могу.
Проблема в следующем: при получении строк из базы с русскими буквами, вместо них выводятся знаки вопроса.
Используемая строка подключения:
ConnectionString = "Provider=MSDAORA;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myHost)(PORT=myPort)))(CONNECT_DATA=(SID=mysid)));Persist Security Info=True;User ID=myUserId;Password=myPassword;Unicode=true";

На моем ПК установлен instantclient 10.2. Если подключаться к базе через dbForge, то все отображается нормально, никаких лишних знаков вопроса нет.
В чем может быть проблема?
Corner
Дата: 13.12.2012 19:00:31
NLS_LANG ??
Hawk15
Дата: 13.12.2012 19:05:19
На моем компе в реестре такого параметра нет. В переменные среды добавлял NLS_LANG с разными значениями. И AMERICAN'ами, и RUSSIAN'ами
На сервере - AMERICAN_AMERICA.CL8MSWIN1251
mayton
Дата: 13.12.2012 20:01:49
Hawk15, ты можешь менять NLS параметры на разных слоях.
В самом простейшем случае прямо в коде используя
вызов процедуры

DBMS_SESSION.SET_NLS (
   param VARCHAR2, 
   value VARCHAR2);
d.nemolchev
Дата: 13.12.2012 21:57:19
mayton
Hawk15, ты можешь менять NLS параметры на разных слоях.
В самом простейшем случае прямо в коде используя
вызов процедуры

DBMS_SESSION.SET_NLS (
   param VARCHAR2, 
   value VARCHAR2);
d.nemolchev
Дата: 13.12.2012 21:57:49
А причем здесь NLS_LANG?
d.nemolchev
Дата: 13.12.2012 22:06:08
Я к чему - клиентский charset изменить на ходу нельзя:
Note:
You cannot modify the setting for the client character set with the ALTER SESSION statement.
Hawk15
Дата: 14.12.2012 09:31:35
d.nemolchev
Я к чему - клиентский charset изменить на ходу нельзя:
Note:
You cannot modify the setting for the client character set with the ALTER SESSION statement.

да, NLS_CHARACTERSET поменять невозможно во время сессии. Изменение NLS_LANGUAGE и NLS_TERRITORY не помогает.
Вопрос: где можно указать NLS_CHARACTERSET или NLS_LANG для клиента?
Hawk15
Дата: 14.12.2012 09:55:06
Если создать в HKEY_LOCAL_MACHINE\SOFTWARE папку ORACLE и в ней строковый параметр NLS_LANG, задавая ему разные параметры, то результат не меняется
Изя Кацман
Дата: 14.12.2012 09:58:04
Hawk15
Вопрос: где можно указать NLS_CHARACTERSET или NLS_LANG для клиента?

Ето можно указать в переменной окружения NLS_LANG
Учитывая, что у тебя Unicode=true, попробуй поставить так:
SET NLS_LANG=AMERICAN_AMERICA.UTF8
или
SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8