sql >> Databáze >  >> RDS >> Oracle

Jak nastavíte propojený server s databází Oracle na SQL 2000/2005?

Podařilo se mi nastavit propojený server se vzdálenou databází Oracle, což skončilo jako vícekrokový proces:

  1. Nainstalujte ovladače Oracle ODBC na SQL Server.
  2. Vytvořte systémové DSN pro databázi Oracle na serveru SQL.
  3. Vytvořte propojený server na serveru SQL pomocí systémového DSN.

Krok 1:Nainstalujte ovladače Oracle ODBC na server

A. Stáhněte si potřebné balíčky Oracle Instant Client:Basic, ODBC a SQL*Plus (volitelné)

b. Rozbalte balíčky do místního adresáře na serveru SQL, obvykle C:\Oracle . Výsledkem by měl být [adresář] jako C:\Oracle\instantclient_10_2 , což bude hodnota [adresář] odkazovaná ve zbytku této odpovědi.

C. Vytvořte textový soubor s názvem tnsnames.ora v rámci okamžitého klienta [adresář], který obsahuje následující:

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

Poznámka:Aktuální HOST , PORT a SERVICE_NAME se bude lišit v závislosti na serveru Oracle, ke kterému se připojujete. Tyto informace lze často nalézt pomocí nástrojů síťového klienta Oracle v části posluchači .

OracleTnsName může být jakýkoli název, který chcete přiřadit zdroji dat Oracle, a bude použit při nastavování systémového DSN. Pokud chcete, můžete také použít výše uvedenou syntaxi k definování více názvů TNS ve stejném souboru tnsnames.ora.

d. Přidejte [adresář] do systémového PATH proměnná prostředí.

E. Vytvořte novou systémovou proměnnou prostředí s názvem TNS_Admin který má hodnotu [adresář]

F. Spusťte [directory]\odbc_install.exe k instalaci ovladačů Oracle ODBC.

G. Je doporučeno restartovat SQL server, ale nemusí to být nutné. Také můžete chtít udělit bezpečnostní oprávnění tomuto adresáři pro uživatelské identity SQL serveru a agenta SQL.

Krok 2:Vytvořte systémový DNS, který používá ovladač Oracle ODBC

A. Otevřete Správce zdroje dat ODBC nářadí. [ Nástroje pro správu --> Zdroje dat (ODBC) ]

b. Vyberte kartu Systémové DSN a poté klepněte na tlačítko Přidat.

C. V seznamu ovladačů vyberte Oracle in instantclient {version} . (např. „Oracle v instantclient 10_2“) a poté vyberte tlačítko Dokončit.

d. Zadejte následující:

  • Data Source Name :{System DSN Name}
  • Description :{nechejte prázdné/prázdné}
  • TNS Service Name :by měl mít OracleTnsName které jste definovali v tnsnames.ora soubor, vyberte jej jako hodnotu.
  • ID uživatele :{Uživatelské jméno Oracle}

E. Vyberte tlačítko Test připojení. Měli byste být vyzváni k zadání {uživatelského hesla Oracle}. Pokud vše půjde dobře, test bude úspěšný.

Krok 3:Vytvořte propojený server v SQL s databází Oracle

Otevřete okno dotazu na serveru SQL a proveďte následující:

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

Poznámka:{Linked Server Name} může být cokoliv, co chcete použít při odkazování na server Oracle, kromě {System DNS Name} musí odpovídá názvu systému DSN, který jste vytvořili dříve.

{Oracle User Name} by mělo být stejné jako ID uživatele používané systémovým DSN a {Oracle User Password} by měla být stejná, jakou jste použili k úspěšnému testování připojení ODBC. Informace o odstraňování problémů s propojeným serverem Oracle naleznete v KB 280106.

Dotaz na propojený server Oracle

OPENQUERY můžete použít ke spouštění předávacích dotazů na propojeném serveru Oracle, ale uvědomte si, že pro velmi velké sady záznamů můžete obdržet ORA-01652 chybová zpráva, pokud zadáte ORDER BY klauzule v předávacím dotazu. Přesunutí ORDER BY klauzule z předávacího dotazu do vnějšího příkazu select za mě tento problém vyřešila.




  1. Jak ISNUMERIC() funguje v SQL Server

  2. Jak mohu získat názvy sloupců z tabulky na serveru SQL?

  3. Vyberte bez klauzule FROM v Oracle

  4. Rozdíl mezi poddotazem a korelovaným poddotazem