Freigeben über


OLE DB-Anbieter für DB2

Der mit Microsoft Host Integration Server verteilte Microsoft OLE DB-Anbieter für DB2 ermöglicht verteilten SQL Server-Abfragen den Zugriff auf Daten in DB2-Datenbanken.

HinweisHinweis

Informationen zum Installieren und Konfigurieren des OLE DB-Anbieters finden Sie in der Dokumentation des Anbieters.

So erstellen Sie einen Verbindungsserver für den Zugriff auf eine DB2-Datenbank

  1. Installieren Sie die Host Integration Server Client-Software auf einem Computer, der eine Instanz von SQL Server ausführt, und wählen Sie die Optionen zum Installieren des OLE DB-Anbieters für DB2 aus.

  2. Bestimmen Sie die Verbindungszeichenfolge, die der OLE DB-Anbieter für DB2 benötigt, um auf die DB2-Datenquelle, die Sie abfragen möchten, zuzugreifen. Die beste Möglichkeit, eine Verbindungszeichenfolge zu bestimmen, besteht darin, eine Datenlinkdatei mithilfe der Anwendung New OLE DB Data Source von Host Integration Server zu erstellen. Weitere Informationen finden Sie in der Dokumentation zu Microsoft Host Integration Server.

  3. Führen Sie sp_addlinkedserver aus, um einen Verbindungsserver zu erstellen. Geben Sie dabei DB2OLEDB als provider_name, den Namen des DB2-Katalogs, der die Daten enthält, auf die Sie zugreifen möchten, als catalog sowie die Verbindungszeichenfolge aus Schritt 2 als provider_string an.

    Das folgende Beispiel veranschaulicht, wie sp_addlinkedserver zum Erstellen einer Verbindungsserverdefinition für den Zugriff auf eine DB2-Datenbank verwendet wird:

    EXEC sp_addlinkedserver @server = 'DB2SRV',
       @srvproduct = 'Microsoft OLE DB Provider for DB2',
       @catalog = 'SEATTLE',
       @provider = 'DB2OLEDB',
       @provstr =
         'NetLib=SNA;NetAddr=;NetPort=;RemoteLU=SEATTLE;LocalLU=LOCAL;
          ModeName=QPCSUPP;InitCat=SEATTLE;
          Default Schema=WNW3XX;PkgCol=WNW3XX;TPName=;Commit=YES;
          IsoLvl=NC;AccMode=;CCSID=37;PCCodePage=1252;BinAsChar=NO;
          Data Source=Seattle_WNW3XX'
    
  4. Führen Sie sp_addlinkedsrvlogin aus, um Anmeldungszuordnungen von SQL Server-Anmeldungen zu DB2-Anmeldungen zu erstellen.

    Das folgende Beispiel ordnet die SQL Server-Anmeldung SQLJoe der DB2-Anmeldung DB2Joe zu:

    EXEC sp_addlinkedsrvlogin 'DB2SRV', false, 'SQLJoe', 'DB2Joe', 'x894jd03?'
    
    HinweisHinweis

    Kennwörter werden unverschlüsselt übertragen. Kennwörter sind in Datenquellendefinitionen und Skripts, die auf Datenträgern gespeichert werden, in Sicherungen und in Protokolldateien sichtbar. Verwenden Sie für diese Art von Verbindung auf keinen Fall ein Administratorkennwort. Wenden Sie sich wegen Sicherheitshinweisen speziell für Ihre Umgebung an Ihren Netzwerkadministrator.

Nach diesen Schritten können Sie den Verbindungsserver namens DB2SRV als Servername in vierteiligen Namen und als linked_server in der OPENQUERY-Funktion verwenden. Beispiel:

SELECT *
FROM DB2SRV.SEATTLE.WNW3XX.DEPARTMENT

Oder:

SELECT *
FROM OPENQUERY(DB2SRV, 'SELECT * FROM SEATTLE.WNW3XX.EMP_ACT')

Wenn die verteilten Abfragen in DB2-Datenquellen NULL-Vergleiche umfassen, sollten Sie IS NULL oder IS NOT NULL anstelle von Vergleichsoperatoren, wie z. B. ist gleich (=), größer als (>) oder kleiner als (<), verwenden. INSERT-Anweisungen sollten zusätzlich Werte für alle Spalten in einer Tabelle bereitstellen, selbst wenn bestimmte Spalten in der Tabelle NULL sein oder Standardwerte aufweisen können.