Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak skonfigurować połączony serwer z bazą danych Oracle na SQL 2000/2005?

Udało mi się skonfigurować połączony serwer ze zdalną bazą danych Oracle, co okazało się procesem wieloetapowym:

  1. Zainstaluj sterowniki Oracle ODBC na serwerze SQL.
  2. Utwórz systemowe DSN do bazy danych Oracle na serwerze SQL.
  3. Utwórz połączony serwer na serwerze SQL przy użyciu systemowego DSN.

Krok 1:Zainstaluj sterowniki Oracle ODBC na serwerze

a. Pobierz niezbędne pakiety Oracle Instant Client:Basic, ODBC i SQL*Plus (opcjonalnie)

b. Rozpakuj pakiety do lokalnego katalogu na serwerze SQL, zazwyczaj C:\Oracle . Powinno to spowodować powstanie [katalogu] takiego jak C:\Oracle\instantclient_10_2 , która będzie wartością [katalogu], do której odwołuje się pozostała część tej odpowiedzi.

c. Utwórz plik tekstowy o nazwie tnsnames.ora w kliencie błyskawicznym [katalog], który zawiera:

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

Uwaga:rzeczywisty HOST , PORT i SERVICE_NAME będzie się różnić w zależności od serwera Oracle, z którym nawiązujesz połączenie. Te informacje można często znaleźć za pomocą narzędzi klienta sieciowego Oracle w sekcji odbiorniki .

OracleTnsName może być dowolną nazwą, którą chcesz przypisać do źródła danych Oracle i będzie używana podczas konfigurowania systemowego DSN. Możesz także użyć powyższej składni, aby zdefiniować wiele nazw TNS w tym samym pliku tnsnames.ora, jeśli chcesz.

d. Dodaj [katalog] do systemu PATH zmienna środowiskowa.

mi. Utwórz nową systemową zmienną środowiskową o nazwie TNS_Admin który ma wartość [katalog]

f. Uruchom [directory]\odbc_install.exe narzędzie do instalacji sterowników Oracle ODBC.

g. Zaleca się ponowne uruchomienie serwera SQL, ale może to nie być konieczne. Możesz także chcieć przyznać uprawnienia bezpieczeństwa do tego katalogu dla tożsamości użytkownika serwera SQL i agenta SQL.

Krok 2:Utwórz systemowy DNS, który korzysta ze sterownika Oracle ODBC

a. Otwórz Administratora źródeł danych ODBC narzędzie. [ Narzędzia administracyjne --> Źródła danych (ODBC) ]

b. Wybierz kartę Systemowe DSN, a następnie wybierz przycisk Dodaj.

c. Z listy sterowników wybierz Oracle w kliencie błyskawicznym {wersja} . (np. „Oracle w kliencie błyskawicznym 10_2”), a następnie wybierz przycisk Zakończ.

d. Określ następujące informacje:

  • Data Source Name :{Nazwa systemu DSN}
  • Description :{pozostaw puste/puste}
  • TNS Service Name :powinien mieć OracleTnsName zdefiniowałeś w tnsnames.ora plik na liście, wybierz go jako wartość.
  • Identyfikator użytkownika :{nazwa użytkownika Oracle}

mi. Wybierz przycisk Testuj połączenie. Powinieneś zostać poproszony o podanie {hasła użytkownika Oracle}. Jeśli wszystko pójdzie dobrze, test się powiedzie.

Krok 3:Utwórz serwer połączony w SQL z bazą danych Oracle

Otwórz okno zapytania na serwerze SQL i wykonaj następujące czynności:

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}'

Uwaga:{Linked Server Name} może być wszystkim, czego chcesz użyć podczas odwoływania się do serwera Oracle, ale {System DNS Name} musi pasuje do nazwy systemu DSN, który utworzyłeś wcześniej.

{Oracle User Name} powinien być taki sam jak identyfikator użytkownika używany przez systemowe DSN, a {Oracle User Password} powinien być taki sam, jak przy pomyślnym przetestowaniu połączenia ODBC. Zobacz KB 280106, aby uzyskać informacje na temat rozwiązywania problemów z serwerem połączonym Oracle.

Przesyłanie zapytań do serwera połączonego Oracle

Możesz użyć OPENQUERY do wykonywania zapytań przekazujących na serwerze połączonym Oracle, ale pamiętaj, że w przypadku bardzo dużych zestawów rekordów możesz otrzymać ORA-01652 komunikat o błędzie, jeśli określisz ORDER BY klauzula w zapytaniu przekazującym. Przenoszenie ORDER BY klauzula z zapytania przekazującego do zewnętrznej instrukcji select rozwiązała dla mnie ten problem.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć krótką nazwę dnia z daty w Oracle

  2. Konwertuj rozdzielany ciąg na wiersze w Oracle

  3. Oracle.ManagedDataAccess.EntityFramework — ORA-01918:użytkownik „dbo” nie istnieje

  4. Jak usunąć wiodące zera z dat w Oracle?

  5. CONNECT BY lub zapytania hierarchiczne w RDBMS innych niż Oracle