MSSQL: linked server to Oracle

Aug 28, 2012 13:36


Решил тут на днях в очередной раз задачку по связке MSSQL сервера с  его  собратом на основе Oracle. Так сказать, сделать небольшой гетерогенный сервис

Грустный момент был в том, что прошлые методики слегка устарели - поэтому пришлось все делать по новому и по другому, а большая часть инструкций или также уже устарели, или содержали какие то ошибки. Вот исправленный вариант, который у меня заработал:
  1. Берем свежий файл 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)
  2. Нам нужен большой файл из этого списка (около 230 метров). Предварительно требует зарегистрироваться!
  3. Устанавливаем в пустой каталог.
  4. Создаем и заполняем файлы
    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
  5. Рестартуем сервис MSSQL из служб.
  6. Проверяем настройки, запустив в консоли скрипт

    sqlplus rd_qts/1234@nvg

    - должен выдать приглашение «SQL>»
  7. Открываем Management Studio и выполняем:

    EXEC sp_addlinkedserver @server = ‘TestOraLink1′, @srvproduct = ‘Oracle’, @provider = ‘OraOLEDB.Oracle’, @datasrc = ‘nvg’
    EXEC sp_addlinkedsrvlogin ‘TestOraLink1′, false, ‘sa’, ‘rd_qts’,’1234′

  8. После проверяем в свойствах созданного linked-сервера правильность пароля и настроек. Сохраняем - делаем test connection.
  9. Запрашиваем данные с оракловой базы:

    SELECT * FROM OPENQUERY(TestOraLink1, ‘select * From REX.FINAL_DATA’)


Mirrored from Acristi's blog..

sql, job, it

Previous post Next post
Up