Erstellen eines Verbindungsservers mit DB2 mithilfe des Microsoft OLE DB-Anbieters für DB2

In diesem Artikel wird ein SQL-Beispielskript zum Erstellen eines Verbindungsservers mit DB2 mit sp_addlinkedserverbeschrieben, und es werden einige Abfragen ausgegeben, um die verteilte Abfrageverarbeitung (Distributed Query Processing, DQP) zu veranschaulichen.

Ursprüngliche Produktversion: Host Integration Server
Ursprüngliche KB-Nummer: 222937

Zusammenfassung

Dieser Artikel enthält ein SQL-Beispielskript zum Erstellen eines Verbindungsservers mit DB2 mithilfe von sp_addlinkedserverund stellt einige Abfragen aus, um den DQP mit DB2OLEDBzu veranschaulichen, dem OLE DB-Anbieter für DB2.

INF: Konfigurieren von Datenquellen für die Microsoft OLE DB-Anbieter für DB2

Erstellen eines Verbindungsservers

EXEC sp_addlinkedserver
@server = 'WNW3XX',
@srvproduct = 'Microsoft OLE DB Provider for DB2',
@catalog = 'OLYMPIA',
@provider = 'DB2OLEDB',
@provstr='NetLib=SNA;NetAddr=;NetPort=;RemoteLU=OLYMPIA;LocalLU=LOCAL;ModeName=QPCSUPP;User ID=WNW3XX;Password=WNW3XX;InitCat=OLYMPIA;Default Schema=WNW3XX;PkgCol=WNW3XX;TPName=;Commit=YES;IsoLvl=NC;AccMode=;CCSID=37;PCCodePage=1252;BinAsChar=NO;Data Source=Olympia_WNW3XX'

EXEC sp_addlinkedsrvlogin 'WNW3XX', false, NULL, 'WNW3XX', 'WNW3XX'

Hinweis

  • DB2OLEDB provider muss in-proc ausgeführt werden. So aktivieren Sie diese Einstellung:

    1. Starten Sie den SQL Server Enterprise-Manager.

    2. Suchen Sie in der Konsolenstruktur den Knoten Verbindungsserver (unter dem Ordner Sicherheit). Klicken Sie mit der rechten Maustaste auf den oben erstellten Verbindungsserver, klicken Sie im Dialogfeld Eigenschaften auf die Registerkarte Allgemein , klicken Sie dann auf Optionen, und klicken Sie auf , um die Einstellung InProcess zulassen zu aktivieren. Dies ist die einzige Möglichkeit, diese Einstellung zu aktivieren, und nachdem sie für einen bestimmten Anbieter aktiviert wurde, wird die Einstellung für jeden nachfolgenden Verbindungsserver verwendet, der mit diesem Anbieter erstellt wurde, einschließlich der mit dem T-SQL-Skript erstellten.

  • Die Gesamtlänge der Verbindungsserver-Initstring darf nicht mehr als 278 Zeichen betragen. Daher ist es vorteilhaft, die DB2OLEDB kurz Verbindungszeichenfolge Argumente zu verwenden, wie oben beschrieben.

  • Verbindungsserver mit DB2OLEDB können auch so konfiguriert werden, dass sie eine Verbindung über TCP/IP herstellen, obwohl das obige Skript dies mithilfe einer SNA APPC-Verbindung veranschaulicht.

Verteilte Beispielabfragen

  • Beispiel für die Verwendung eines SELECT vierteiligen Namens: LinkedServer.Catalog.Schema.Table

    SELECT * FROM WNW3XX.OLYMPIA.WNW3XX.DEPARTMENT
    
  • Beispiel für passthrough SELECT mit OPENQUERY mit 3-teiligem Namen:

    SELECT * FROM OPENQUERY(WNW3XX,"SELECT * FROM OLYMPIA.WNW3XX.EMP_ACT")
    
  • Beispiel für pass through SELECT using OPENROWSET mit 2-teiligem Namen:

    SELECT * FROM OPENROWSET
    ('DB2OLEDB',Netlib=SNA;NetAddr=;NetPort=;RemoteLU=OLYMPIA;LocalLU=LOCAL;ModeName=QPCSUPP;User ID=WNW3XX;Password=WNW3XX;InitCat=OLYMPIA;Default Schema=WNW3XX;PkgCol=WNW3XX;TPName=;Commit=YES;IsoLvl=NC;AccMode=;CCSID=37;PCCodePage=1252;BinAsChar=NO;Data Source=Sample',
    'SELECT * FROM WNW3XX.EMPLOYEE')
    
  • Beispiel für einen INSERT 4-teiligen Namen:

    INSERT INTO WNW3XX.OLYMPIA.WNW3XX.DEPARTMENT VALUES
    ('E21','DUMMY',NULL,'E01')
    

    Hinweis

    UPDATE und DELETE die Verwendung von DQP sind mit dem Anbieter, der DB2OLEDB mit SNA Version 4.0 Service Pack 2 und Service Pack 3 ausgeliefert wurde, aufgrund fehlender Lesezeichenunterstützung nicht möglich, aber diese funktionieren mit dem SNA 4.0 Service Pack 4-Anbieter und dem Anbieter, der mit Host Integration Server ausgeliefert wurde.

  • Beispiel für JOIN zwischen einer SQLServer- und DB2-Tabelle:

    SELECT A.EMPLOYEE_NUMBER,B.ACTNO FROM CORPDATA..EMPLOYEE_ACCOUNT A, WNW3XX.OLYMPIA.WNW3XX.EMP_ACT B WHERE A.EMPLOYEE_NUMBER = B.EMPNO ORDER BY A.EMPLOYEE_NUMBER