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, время: 14:38.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.