Erstellen eines verknüpften Servers mit DB2 mithilfe des Microsoft OLE DB-Anbieters für DB2

Dieser Artikel beschreibt ein Beispiel SQL Skripts zum Erstellen eines verknüpften Servers mit DB2 und sp_addlinkedserver gibt einige Abfragen aus, 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 Beispiel SQL Skripts zum Erstellen eines verknüpften Servers mit DB2 und sp_addlinkedserver gibt einige Abfragen aus, um den DQP zu veranschaulichen, der den DB2OLEDB OLE DB-Anbieter für DB2 verwendet.

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

Erstellen von verknüpften Servern

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 needs to run in-proc. So aktivieren Sie diese Einstellung:

    1. Starten Sie den SQL Server Enterprise-Manager.

    2. Suchen Sie in der Konsolenstruktur den Knoten "Verknüpfte Server" (unter dem Ordner "Sicherheit"). Klicken Sie mit der rechten Maustaste auf den oben erstellten verknüpften Server, und klicken Sie im Dialogfeld "Eigenschaften" auf die Registerkarte "Allgemein", klicken Sie dann auf "Optionen", und klicken Sie dann, 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 verknüpften Server verwendet, der mit diesem Anbieter erstellt wurde, einschließlich derjenigen, die mit T-SQL-Skript erstellt wurden.

  • Die Gesamtlänge der verknüpften Serverinitstring darf maximal 278 Zeichen umfassen, daher ist es vorteilhaft, die argumente für die DB2OLEDB kurze Verbindungszeichenfolge wie oben beschrieben zu verwenden.

  • Verknüpfte Server können auch so konfiguriert werden, dass eine DB2OLEDB Verbindung über TCP/IP hergestellt wird, obwohl dies im obigen Skript mithilfe einer SNA APPC-Verbindung veranschaulicht wird.

Beispiele für verteilte Abfragen

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

    SELECT * FROM WNW3XX.OLYMPIA.WNW3XX.DEPARTMENT
    
  • Beispiel für die SELECT OPENQUERY Pass-Through-Verwendung mit dreiteiligem Namen:

    SELECT * FROM OPENQUERY(WNW3XX,"SELECT * FROM OLYMPIA.WNW3XX.EMP_ACT")
    
  • Beispiel für die SELECT OPENROWSET Pass-Through-Verwendung mit zweiteiligem 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 vierteiligen Namen:

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

    Hinweis

    UPDATEund DELETE die Verwendung von DQP ist für den Anbieter, der mit DB2OLEDB 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 between a SQLServer and DB2 table:

    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