Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да настроите свързан сървър към база данни на Oracle на SQL 2000/2005?

Успях да настроя свързан сървър към отдалечена база данни на Oracle, което в крайна сметка се оказа многоетапен процес:

  1. Инсталирайте Oracle ODBC драйвери на SQL Server.
  2. Създайте системен DSN към база данни на Oracle на SQL Server.
  3. Създайте свързан сървър на SQL сървър с помощта на System DSN.

Стъпка 1:Инсталирайте Oracle ODBC драйвери на сървър

а. Изтеглете необходимите пакети Oracle Instant Client:Basic, ODBC и SQL*Plus (по избор)

б. Разархивирайте пакетите в локална директория на SQL сървъра, обикновено C:\Oracle . Това трябва да доведе до [директория] като C:\Oracle\instantclient_10_2 , което ще бъде стойността на [директория], посочена в останалата част от този отговор.

° С. Създайте текстов файл с име tnsnames.ora в рамките на мигновената клиентска [директория], която съдържа следното:

OracleTnsName = 
(
  DESCRIPTION=
  (
    ADDRESS = (PROTOCOL=TCP)(HOST=10.1.3.42)(PORT=1521)
  )
  (
    CONNECT_DATA = (SERVICE_NAME=acc)
  )
)

Забележка:Действителен HOST , PORT и SERVICE_NAME ще варира в зависимост от сървъра на Oracle, към който установявате връзка. Тази информация често може да бъде намерена с помощта на мрежовите клиентски инструменти на Oracle под слушателите .

OracleTnsName може да бъде всяко име, което искате да присвоите на източника на данни на Oracle, и ще се използва при настройка на системния DSN. Можете също да използвате синтаксиса по-горе, за да дефинирате множество TNS имена в един и същ файл tnsnames.ora, ако желаете.

д. Добавете [директорията] към системния PATH променлива на средата.

д. Създайте нова променлива на системната среда с име TNS_Admin която има стойност [директория]

е. Изпълнете [directory]\odbc_install.exe помощна програма за инсталиране на драйверите на Oracle ODBC.

ж. Препоръчително е да рестартирате SQL сървъра, но може да не е необходимо. Също така може да искате да предоставите разрешения за защита на тази директория за потребителските идентичности на SQL сървъра и SQL агента.

Стъпка 2:Създайте системен DNS, който използва драйвера на Oracle ODBC

а. Отворете Администратора на източници на данни ODBC инструмент. [ Административни инструменти --> Източници на данни (ODBC) ]

б. Изберете раздела System DSN и след това изберете бутона Добавяне.

° С. В списъка с драйвери изберете Oracle в instantclient {версия . (напр. „Oracle в instantclient 10_2“) и след това изберете бутона „Край“.

д. Посочете следното:

  • Data Source Name :{System DSN Name}
  • Description :{оставете празно/празно
  • TNS Service Name :трябва да има OracleTnsName сте дефинирали в tnsnames.ora посочен файл, изберете го като стойност.
  • Потребителски идентификатор :{Oracle потребителско име

д. Изберете бутона Тестване на връзката. Трябва да бъдете подканени да предоставите {Oracle user password}. Ако всичко върви добре, тестът ще бъде успешен.

Стъпка 3:Създайте свързан сървър в SQL към базата данни на Oracle

Отворете прозорец за заявка в SQL сървър и изпълнете следното:

EXEC sp_addlinkedserver 
     @server        = '{Linked Server Name}'
    ,@srvproduct    = '{System DSN Name}'
    ,@provider      = 'MSDASQL'
    ,@datasrc       = '{System DSN Name}'

EXEC sp_addlinkedsrvlogin 
     @rmtsrvname    = '{Linked Server Name}'
    ,@useself       = 'False'
    ,@locallogin    = NULL
    ,@rmtuser       = '{Oracle User Name}'
    ,@rmtpassword   = '{Oracle User Password}'

Забележка:{Linked Server Name} може да бъде всичко, което искате да използвате, когато се позовавате на сървъра на Oracle, но {System DNS Name} трябва съвпада с името на системния DSN, който сте създали по-рано.

{Oracle User Name} трябва да е същото като потребителския идентификатор, използван от системния DSN, и {Oracle User Password} трябва да бъде същото, което сте използвали за успешно тестване на ODBC връзката. Вижте KB 280106 за информация относно отстраняването на проблеми, свързани със сървъра на Oracle.

Запитване към свързания сървър на Oracle

Можете да използвате OPENQUERY за изпълнение на преходни заявки на свързания сървър на Oracle, но имайте предвид, че за много големи набори от записи може да получите ORA-01652 съобщение за грешка, ако посочите ORDER BY клауза в преходната заявка. Преместване на ORDER BY клаузата от преходната заявка към външния оператор select реши този проблем за мен.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Резултат от формата за изваждане на времето

  2. PL/SQL шлюз в R11i

  3. Хибернация, идентификатор, оракул, последователност

  4. Oracle PLSQL въпроси за интервю

  5. Материализирани изгледи - Идентифициране на последното опресняване