Решил тут на днях в очередной раз задачку по связке MSSQL сервера с его собратом на основе Oracle. Так сказать, сделать небольшой гетерогенный сервис
Грустный момент был в том, что прошлые методики слегка устарели - поэтому пришлось все делать по новому и по другому, а большая часть инструкций или также уже устарели, или содержали какие то ошибки. Вот исправленный вариант, который у меня заработал:
- Берем свежий файл 64-bit ODAC 11.2 Release 4 (11.2.0.3.0) for Windows x64 с (http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html)
- Нам нужен большой файл из этого списка (около 230 метров). Предварительно требует зарегистрироваться!
- Устанавливаем в пустой каталог.
- Создаем и заполняем файлы
tnslist.ora:
NVG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.33.25)(PORT = 1521))
)
(CONNECT_DATA =
(SID = nvg)
)
)
и sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES)
- они лежат в папке ..\Network\admin - Рестартуем сервис MSSQL из служб.
- Проверяем настройки, запустив в консоли скрипт
sqlplus rd_qts/1234@nvg
- должен выдать приглашение «SQL>» - Открываем Management Studio и выполняем:
EXEC sp_addlinkedserver @server = ‘TestOraLink1′, @srvproduct = ‘Oracle’, @provider = ‘OraOLEDB.Oracle’, @datasrc = ‘nvg’
EXEC sp_addlinkedsrvlogin ‘TestOraLink1′, false, ‘sa’, ‘rd_qts’,’1234′
- После проверяем в свойствах созданного linked-сервера правильность пароля и настроек. Сохраняем - делаем test connection.
- Запрашиваем данные с оракловой базы:
SELECT * FROM OPENQUERY(TestOraLink1, ‘select * From REX.FINAL_DATA’)
Mirrored from
Acristi's blog..