Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как создать linked server oracle 11g XE на MS SQL 2005  [new]
гр к
Guest
Создал системный dsn с названием sc, запускаю системные хранимые процедуры - всё ок вроде бы.
sp_dropserver 'ora11', 'droplogins'; 
EXEC master.dbo.sp_addlinkedserver @server = N'ora11'
, @srvproduct=N'Oracle'
,@provider=N'Oracle in XE'  
--, @datasrc=N'ora11gxe_32';
, @datasrc=N'sc';

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ora11'
,@useself=N'False'
,@locallogin=NULL
,@rmtuser='SCOTT'
,@rmtpassword='TIGER';


При селекте select * from ora11..SCOTT.EMP;
Получаю ошибку
Msg 7403, Level 16, State 1, Line 1
The OLE DB provider "Oracle in XE" has not been registered.

Какие исправление на что нужны?
5 фев 18, 13:32    [21166685]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1172
гр к,

какой то у вас сомнительный провайдер в виде 'Oracle in EX', обычно для соединения используют 'ORAOLEDB.Oracle'
5 фев 18, 13:42    [21166723]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
гр к
Guest
felix_ff
гр к,

какой то у вас сомнительный провайдер в виде 'Oracle in EX', обычно для соединения используют 'ORAOLEDB.Oracle'

Это я из панели администрирования ODBC взял. Видимо, в процедуре он иначе должен называться.
Вопрос в том, как именно.
DSN я создавал именно на этом провайдере.
Может у кого-то уже есть аналогичный успешный опыт.
Может, какое-то иное нужно исправление.

Если использовать в процедуре Provider=MSDASQL, то при селекте select * from ora11..SCOTT.EMP;
ошибка
Msg 7318, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "ora11" returned an invalid column definition for table ""SCOTT"."EMP"".
5 фев 18, 13:55    [21166773]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1172
гр к,

я же Вам написал какой провайдер используют для подключения к оракловым серверам.
Если хотите использовать oledb прослойку для odbc тогда вам data source надо менять на dsn созданого алиаса в odbc.
5 фев 18, 14:00    [21166795]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
гр к
Guest
felix_ff
гр к,
...
Если хотите использовать oledb прослойку для odbc тогда вам data source надо менять на dsn созданого алиаса в odbc.

Я так и сделал. Для Postgre всё ок, а с oracle xe вышеприведенная ошибка
Msg 7318, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "ora11" returned an invalid column definition for table ""SCOTT"."EMP"".

Из экселя причем ч-з VBA норм коннекчусь.
5 фев 18, 14:15    [21166865]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
ыарт
Guest
exec sp_enum_oledb_providers
5 фев 18, 14:32    [21166935]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
гр к
Guest
UDL-файл норм:
udl
[oledb]
; Everything after this line is an OLE DB initstring
Provider=MSDASQL.1;Password=TIGER;Persist Security Info=True;User ID=SCOTT;Data Source=sc


Excel и Access коннектятся без проблем, а MS SQL Server почему-то нет.
Эх.
5 фев 18, 16:35    [21167460]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
KRS544
Member

Откуда:
Сообщений: 497
Провайдеры
OraOLEDB.Oracle - Oracle OLE DB
MSDASQL - MS OLEDB для ODBC

Есть еще OLE DB от микрософта, но не рекомендую
5 фев 18, 16:54    [21167519]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
KRS544
Member

Откуда:
Сообщений: 497
link
5 фев 18, 16:57    [21167529]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
гр к
Guest
KRS544, т.е. нужно ещё и клиента Оракла и OLE DB драйвер оракловый ставить специально?
И СКЛ Сервер, и Оракл Экспресс у меня на 1 компе находятся.
5 фев 18, 17:45    [21167709]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
KRS544
Member

Откуда:
Сообщений: 497
Ну а как иначе?
Не знаю, может с Ораклом Экспресс автоматом все ставиться.
5 фев 18, 19:02    [21167860]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1668
Подниму тему.

На SQL Server-e создал Linked Server к Oracle 12c. Проверяю соединение - ок. Пытаюсь раскрыть структуру каталогов - получаю ошибку 7403 "Поставщик OLE DB "OraOLEDB.Oracle" не зарегистрирован.

Ок.

Нахожу библиотеку OraOLEDB12.dll, регистрирую её при помощи regsvr32.exe, регистрация успешна.

Пытаюсь раскрыть структуру каталогов снова - получаю ошибку 7311 "Не удалось получить набор строк схемы "DBSCHEMA_TABLES" поставщика OLE DB "OraOLEDB.Oracle" для связанного сервера. Поставщик поддерживает интерфейс, но возвращает код ошибки при его использовании.

На использовании именно этого провайдера не настаиваю.
Вопрос - куда копать и что делать?

Установленные драйверы ODBC для оракла в системе: Oracle in Oracle, Oracle in OraClient12Home1, Oracle in OraClient12Home2 (файл SQORA32.DLL).

Так... Что ещё?
Система: Windows Server 2008 R2 Enterprise Service Pack 1 (6.1.7601), 64 разрядная.
MS SQL Server 2012(SP4), 64 разрядный.

P.S. Кажется, вчера в списке драйверов стояли ещё OraOLEDB.Oracle - Oracle OLE DB и
MSDASQL - MS OLEDB для ODBC. Куда пропали - не в курсе.
28 сен 18, 11:31    [21688879]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1668
строка создания linked server-a:
EXEC master.dbo.sp_addlinkedserver @server = N'Name', @srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'192.168.16.51:1521/Name'
28 сен 18, 11:38    [21688894]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
DaniilSeryi,
на провайдере AllowInProcess
28 сен 18, 11:40    [21688898]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1668
TaPaK
DaniilSeryi,
на провайдере AllowInProcess


В смысле
exec master.dbo.sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1
?

Сделал ещё вчера. Не помогло.
28 сен 18, 12:29    [21688958]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
DaniilSeryi,

я так понимаю что вы 32 разрядный драйвер поставили под x64
28 сен 18, 12:36    [21688963]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1668
TaPaK
DaniilSeryi,

я так понимаю что вы 32 разрядный драйвер поставили под x64


Так... Значит, как понимаю, мне предстоит регистрация на сайте oracle, затем качать 64х разрядный драйвер, удалять 32х разрядный драйвер, установка 64х разрядного драйвера, перезагрузка сервера, опять regsvr32.exe, удаление старого linked server-a и создание нового?
28 сен 18, 12:41    [21688977]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
DaniilSeryi
TaPaK
DaniilSeryi,

я так понимаю что вы 32 разрядный драйвер поставили под x64


Так... Значит, как понимаю, мне предстоит регистрация на сайте oracle, затем качать 64х разрядный драйвер, удалять 32х разрядный драйвер, установка 64х разрядного драйвера, перезагрузка сервера, опять regsvr32.exe, удаление старого linked server-a и создание нового?

можете пообедать ещё.
Линк пересоздавать не надо, по остально читайте
28 сен 18, 12:43    [21688984]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3145
DaniilSeryi
TaPaK
DaniilSeryi,

я так понимаю что вы 32 разрядный драйвер поставили под x64


Так... Значит, как понимаю, мне предстоит регистрация на сайте oracle, затем качать 64х разрядный драйвер, удалять 32х разрядный драйвер, установка 64х разрядного драйвера, перезагрузка сервера, опять regsvr32.exe, удаление старого linked server-a и создание нового?
Рекомендую повременить с удалением 32-битного. Сам не плавал, но слыхал от сотрудника, которому приходится мучаться с ораклом, что 64-битный драйвер якобы использует какие-то файлы из 32-битного. Когда он у себя удалил 32-битный, все отвалилось, пока не вернул его обратно.
28 сен 18, 12:45    [21688986]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
KRS544
Member

Откуда:
Сообщений: 497
DaniilSeryi
Подниму тему.
"Поставщик OLE DB "OraOLEDB.Oracle" не зарегистрирован.

Установленные драйверы ODBC для оракла в системе: Oracle in Oracle, Oracle in OraClient12Home1, Oracle in OraClient12Home2 (файл SQORA32.DLL).

Oracle OLEDB точно ставили? На нем надо отдельно галку ставить при установке, если не ошибаюсь
ODAC
регистрировать с regsvr32.exe точно не надо было никогда.
В [Линкед сервер]\[поставщики] должен появиться [OraOLEDB.Oracle]
28 сен 18, 12:51    [21688998]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1668
KRS544
DaniilSeryi
Подниму тему.
"Поставщик OLE DB "OraOLEDB.Oracle" не зарегистрирован.

Установленные драйверы ODBC для оракла в системе: Oracle in Oracle, Oracle in OraClient12Home1, Oracle in OraClient12Home2 (файл SQORA32.DLL).

Oracle OLEDB точно ставили? На нем надо отдельно галку ставить при установке, если не ошибаюсь
ODAC
регистрировать с regsvr32.exe точно не надо было никогда.
В [Линкед сервер]\[поставщики] должен появиться [OraOLEDB.Oracle]


Эти занимался другой человек давным-давно, но в списке поставщиков OraOLEDB.Oracle в наличии.
28 сен 18, 12:57    [21689009]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
KRS544
Member

Откуда:
Сообщений: 497
Ennor Tiegael
DaniilSeryi
пропущено...


Так... Значит, как понимаю, мне предстоит регистрация на сайте oracle, затем качать 64х разрядный драйвер, удалять 32х разрядный драйвер, установка 64х разрядного драйвера, перезагрузка сервера, опять regsvr32.exe, удаление старого linked server-a и создание нового?
Рекомендую повременить с удалением 32-битного. Сам не плавал, но слыхал от сотрудника, которому приходится мучаться с ораклом, что 64-битный драйвер якобы использует какие-то файлы из 32-битного. Когда он у себя удалил 32-битный, все отвалилось, пока не вернул его обратно.

И 32 и 64 прекрасно уживаются, надо ставить в разные каталоги.
Visual studio работает с 32х драйверами
28 сен 18, 12:59    [21689013]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
KRS544
Member

Откуда:
Сообщений: 497
DaniilSeryi
Эти занимался другой человек давным-давно, но в списке поставщиков OraOLEDB.Oracle в наличии.


А попробуйте сделать запрос с оракла
select * from OPENQUERY(LINKEDSERVER,'select sysdate from dual')
28 сен 18, 13:07    [21689022]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1668
KRS544
DaniilSeryi
Эти занимался другой человек давным-давно, но в списке поставщиков OraOLEDB.Oracle в наличии.


А попробуйте сделать запрос с оракла
select * from OPENQUERY(LINKEDSERVER,'select sysdate from dual')


2018-09-28 13:31:26.0000000
28 сен 18, 13:32    [21689046]     Ответить | Цитировать Сообщить модератору
 Re: Как создать linked server oracle 11g XE на MS SQL 2005  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1668
Как понимаю, возможен вариант, что логин создан, к серверу логинится, а вот прав на чтение из нужной БД не имеет? Или что-то иное? 64х битные драйвера пока не ставил.
28 сен 18, 13:35    [21689049]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить