[ТЕМА ЗАКРЫТА]
Опции темы
31.10.2006 11:35  
isi
Делаю например из QueryAnalizer:

Код:
SELECT 'яяяяя', name FROM OPENRowset('MSDAORA', '00_CENTER';'supermag';'xxx', 'select * from smstorelocations')
Получаю все в норме с кодировкой при этом результат:
Код:
select * from nls_database_parameters
возвращает :
Код:
NLS_LANGUAGE	AMERICAN
NLS_TERRITORY	AMERICA
NLS_CURRENCY	$
NLS_ISO_CURRENCY	AMERICA
NLS_NUMERIC_CHARACTERS	.,
NLS_CHARACTERSET	CL8MSWIN1251
NLS_CALENDAR	GREGORIAN
NLS_DATE_FORMAT	DD-MON-RR
NLS_DATE_LANGUAGE	AMERICAN
NLS_SORT	BINARY
NLS_TIME_FORMAT	HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT	DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT	HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT	DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY	$
NLS_COMP	BINARY
NLS_LENGTH_SEMANTICS	BYTE
NLS_NCHAR_CONV_EXCP	FALSE
NLS_NCHAR_CHARACTERSET	AL16UTF16
NLS_RDBMS_VERSION	9.2.0.7.0
Делаю тоже самое из 1С (подключение через ADO), прямой запрос к MSSQL с кодировкой все нормально, а вот при запросе с подключением к Oracle:
Код:
SELECT 'яяяяя', name FROM OPENRowset('MSDAORA', '00_CENTER';'supermag';'xxx', 'select * from smstorelocations')
Получаю по первой колноке нормально все, по второй даже не кракозябиды, короче выглядит вместо русских букв: iiiiiiiiiiiiiiiii - что то типа этого, при этом если выполнить из 1С
Код:
select * from nls_database_parameters
результат такой же как и с QueryAnalyzer'а

Есть у кого какие мысли или просто я туплю?
 
31.10.2006 11:50  
OlegON
nls_database_parameters в данном случае не при чем, ибо это серверное. А тебе нужно то, что у тебя на машине. Залезь в реестр машинки, где 1C и пробей правильный nls_lang. Штатная ситуация, именно по iiiii видная. Для уверенности можно забить в системные переменные nls_lang.
 
31.10.2006 12:03  
isi
Поправлю тебя немного, соединение с Oracle создается самим сервером MSSQL и клиент используется именно с той машины, где MSSQL (а не 1С, мне нужен connect именно с сервера MSSQL). Так вот на какие бы я параметры не выставлял на сервере с MSSQL, все равно результат один... а SELECT OPENRowset не позволяет сделать ...alter session. т.е. надо как-то научить делать правильные настройки подключения к Oracle MSSQL
 
31.10.2006 12:16  
OlegON
А если на машине, откуда идет запрос на Оракла, пустить просто SQL Plus и сделать select?
 
31.10.2006 12:17  
EugeneT
Цитата:
Сообщение от isi
Поправлю тебя немного, соединение с Oracle создается самим сервером MSSQL и клиент используется именно с той машины, где MSSQL (а не 1С, мне нужен connect именно с сервера MSSQL). Так вот на какие бы я параметры не выставлял на сервере с MSSQL, все равно результат один... а SELECT OPENRowset не позволяет сделать ...alter session. т.е. надо как-то научить делать правильные настройки подключения к Oracle MSSQL
Имхуется мне что сервис MSSQL запущен в контексте пользователя SYSTEM, коему все переменные выставленные в контесте залогиненого юзера по барабану. Дать Юзеру право "logon as service", выставить ему в профиле нужные переменные и сиквел запускать от его имени.
Либо, как вариант. Запустить regedt32, "Загрузить куст/Load Hive" c:\Documents and Settings\SYSTEM\ntuser.dat. Найти там ветку Enviroment и там добавить нужную переменную. Выгрузить куст, машинку перезагрузить
 
31.10.2006 12:19  
isi
да я прогнал, но пока до конца не разобрался, результат напишу, действительно надо же было проверить с помощью select * from v$nls_parameters
 
31.10.2006 12:23  
isi
Цитата:
Имхуется мне что сервис MSSQL запущен в контексте пользователя SYSTEM, коему все переменные выставленные в контесте залогиненого юзера по барабану. Дать Юзеру право "logon as service", выставить ему в профиле нужные переменные и сиквел запускать от его имени.
Либо, как вариант. Запустить regedt32, "Загрузить куст/Load Hive" c:\Documents and Settings\SYSTEM\ntuser.dat. Найти там ветку Enviroment и там добавить нужную переменную. Выгрузить куст, машинку перезагрузить
Подумал сразу в эту сторону, но смутил мой предыдущий ошибочный запрос по получению параметров NLS сессии... Ща буду дальше делать...
 
31.10.2006 12:52  
isi
Блин, надо было так прогнать, все нормально, на одном серваке правил NLS_LANG, а запрос то с другого шел...
 
 
Опции темы



Часовой пояс GMT +3, время: 07:37.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.