Oracle Provider for OLE DB

Dostawca bazy danych Oracle for OLE DB (8.1.7.3.0) umożliwia kwerendami rozproszonymi w odniesieniu do danych w bazach danych Oracle.Obsługę bazy danych Oracle dostawca OLE DB jest następująca:

32-Bitowe programu Oracle

Limit czasu-o proc tylko

64-Bitowe programu Oracle

None

Aby utworzyć serwer połączony, aby uzyskać dostęp do wystąpienie bazy danych Oracle

  1. Make sure the Oracle client software on the server that is running Microsoft SQL Server is at the level required by the provider.Dostawca bazy danych Oracle for OLE DB (8.1.7.3.0) wymaga klient Oracle 8.1.7.0.

  2. Tworzenie alias nazwy na serwerze, na którym jest uruchomiony SQL Server który wskazuje na wystąpienie bazy danych Oracle. Aby uzyskać więcej informacji zobacz w dokumentacji programu Oracle.

  3. wykonać sp_addlinkedserver do tworzenia serwer połączony, określając OraOLEDB.Oracle as provider_name, a alias dla bazy danych Oracle jako data_source.

    W poniższym przykładzie założono, że alias został zdefiniowany jako DQORA8:

    exec sp_addlinkedserver @server='OrclDB', 
        @srvproduct='Oracle',
        @provider='OraOLEDB.Oracle', 
        @datasrc='DQORA8'
    
    Security noteSecurity Note:

    W tym przykładzie nie korzysta z uwierzytelnianie systemu Windows.Hasła będą przesyłane bez szyfrowania.Hasła mogą być widoczne w definicji urządzenie źródłowe danych i skrypty, które są zapisywane na dysku, w kopii zapasowych i w plikach dziennika.Nigdy nie używaj hasła administratora w tego rodzaju połączenia.Skontaktuj się z administratorem sieci dla wskazówki dotyczące zabezpieczeń, specyficzne dla danego środowiska.

  4. Użycie sp_addlinkedsrvlogin utworzyć mapowania identyfikatora logowania z SQL Server logowania do identyfikatorów logowania bazy danych Oracle.

    W następującym przykładzie polecenie mapuje SQL Server Identyfikator logowania Joe do serwer połączony zdefiniowanej w kroku 3 przy użyciu identyfikatora logowania bazy danych Oracle i hasła OrclUsr i OrclPwd:

    sp_addlinkedsrvlogin @rmtsrvname = 'OrclDB', 
       @useself = 'false', 
       @locallogin = 'Joe', 
       @rmtuser = 'OrclUsr', 
       @rmtpassword = 'OrclPwd'
    

Odwołanie do tabel połączonych serwer Oracle używać następujące zasady:

  • Jeśli w tabeli i kolumna nazwy zostały utworzone w Oracle bez identyfikatorów w cudzysłowach, należy użyć nazwy wszystkich wielkich liter.

  • Nazwy tabel i kolumn zostały utworzone w Oracle z identyfikatorami w cudzysłowach, użyć tej samej sprawie dla wszystkich liter nazwy jak został użyty podczas nazwy zostały utworzone w bazy danych Oracle.

  • Instrukcji INSERT należy podać wartości dla wszystkich kolumn w tabela, nawet jeśli niektóre kolumny w tabela może być NULL lub wartości domyślne.

  • Ten dostawca nie obsługuje bezpośredniego przekazywanie datetime Literały jako argumenty w następującym formacie:

    EXEC 'string' '<datetime-literal>' AT <oraclelinkedserver>
    

    Na przykład, użycie następujących datetime literał '14-sep-94' nie jest obsługiwane:

    EXEC('INSERT INTO DYNORCL.SALES(ID, ORD_NO, ORD_DATE, QTY) 
       VALUES (?, ?, ?, ?)', '6380', '6871', '14-sep-94', 5) AT OrclDB
    

    Zamiast tego utwórz datetime Zmienna, przypisać mu wartość literału, a wywołanie EXEC ze zmienną jako argumentu:

    DECLARE @v1 datetime
    SET @v1 = CONVERT(datetime,'14-sep-94')
    EXEC('INSERT INTO DYNORCL.SALES(ID, ORD_NO, ORD_DATE, QTY) 
       VALUES (?, ?, ?, ?)', '6380', '6871', @v1, 5) AT OrclDB
    

Ograniczenia

SQL Server does not support the use of the AVG aggregate function against Oracle tables because the Oracle provider returns the OLE DB type DBTYPE_VARNUMERIC.SQL Server does not support DBTYPE_VARNUMERIC.Na przykład w poniższym kodzie zwróci błąd:

SELECT AVG(QTY)
FROM ORA..RPUBS.SALES

Aby uniknąć błędu, należy użyć OPENQUERY. Na przykład:

SELECT *
FROM OPENQUERY(ORA,
   'SELECT CAST (AVG(QTY) AS numeric)
   FROM ORA..RPUBS.SALES')

Wpisy rejestru

Aby włączyć dostawca OLE DB dla Oracle do pracy z oprogramowania klienckiego Oracle, należy zmodyfikować rejestru klient, uruchamiając plik rejestru z wiersza polecenia.Wiele instancji oprogramowania klienckiego nie powinno się uruchamiać w tym samym czasie.Pliki te są wymienione w poniższej tabela i znajdują się w tej samej struktury katalogów, który zawiera instalację programu Microsoft Data Access Component (MDAC).Ta zazwyczaj znajduje się w folderze C:\Program Files\Common Files\System Files\OLE w DB.

Klient Oracle

System Windows NT lub 9 x

Windows 2000

 7. x

mtxoci7x_winnt.reg

mtxoci7x_win2k.reg

8.0

mtxoci80_winnt.reg

mtxoci80_win2k.reg

8.1

mtxoci81_winnt.reg

mtxoci81_win2k.reg