Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 не соединяет через OraOLEDB.Oracle (MSSQL x64 - Oracle x64)  [new]
april77
Guest
Microsoft SQL Server 2005 - 9.00.1399.06 X64

exec sp_addlinkedserver
	@server = N'ORADB', 
	@srvproduct = N'Oracle', 
	@provider = N'OraOLEDB.Oracle', 
	@datasrc = N'nn.nn.nn.nn:1521/LPT' 
go
exec sp_addlinkedsrvlogin
	@rmtsrvname = N'ORADB', 
	@useself = N'FALSE', 
	@rmtuser = N'usrname', 
	@rmtpassword = N'password'
go
select * from oradb..shemaname.tablename
go
exec sp_dropserver 'ORADB', droplogins
go


дает ошибку:

OLE DB provider "OraOLEDB.Oracle" for linked server "oradb" returned message "ORA-12154: TNS:невозможно разрешить заданный идентификатор соединения".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "OraOLEDB.Oracle" for linked server "oradb".

При этом из SQLPLUS коннект нормальный, на TNS файл не жалуется, т.е. когда TNS был неправильный, то и из SQLPLUS'а тоже не коннектилось.
Сам TNS такой:

LPT =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nn.nn.nn.nn)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = LPT)
)
)

Куда копать?
5 ноя 13, 09:54    [15076985]     Ответить | Цитировать Сообщить модератору
 Re: не соединяет через OraOLEDB.Oracle (MSSQL x64 - Oracle x64)  [new]
mike909
Member

Откуда:
Сообщений: 662
april77,

Копать в сторону помещения tnsnames.ora в каталог \network\admin\ 64_х битного клиента.
Либо создать Linked Server с
@datasrc=N'(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = nn.nn.nn.nn)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = LPT)))'
5 ноя 13, 10:18    [15077073]     Ответить | Цитировать Сообщить модератору
 Re: не соединяет через OraOLEDB.Oracle (MSSQL x64 - Oracle x64)  [new]
Glory
Member

Откуда:
Сообщений: 104751
april77
При этом из SQLPLUS коннект нормальный, на TNS файл не жалуется, т.е. когда TNS был неправильный, то и из SQLPLUS'а тоже не коннектилось.
Сам TNS такой:

LPT =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = nn.nn.nn.nn)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = LPT)
)
)
Куда копать?

Если TNS называется LPT, то почему тогда @datasrc = N'nn.nn.nn.nn:1521/LPT' ?
5 ноя 13, 10:23    [15077087]     Ответить | Цитировать Сообщить модератору
 Re: не соединяет через OraOLEDB.Oracle (MSSQL x64 - Oracle x64)  [new]
april77
Guest
mike909
april77,

Копать в сторону помещения tnsnames.ora в каталог \network\admin\ 64_х битного клиента.
Либо создать Linked Server с
@datasrc=N'(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = nn.nn.nn.nn)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = LPT)))'


СПАСИБО! помогло!
5 ноя 13, 10:51    [15077213]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить