Share via


OLE DB-Quelle

Aktualisiert: 15. September 2007

Die OLE DB-Quelle extrahiert Daten mithilfe einer Datenbanktabelle, einer Sicht oder eines SQL-Befehls aus einer Reihe von OLE DB-kompatiblen relationalen Datenbanken. Beispielsweise kann die OLE DB-Quelle Daten aus Tabellen in Microsoft Access- oder SQL Server-Datenbanken extrahieren.

ms141696.note(de-de,SQL.90).gifHinweis:
Verwenden Sie zum Laden von Daten aus einer Datenquelle, für die Microsoft Office Excel 2007 verwendet wird, eine OLE DB-Quelle. Sie können eine Excel-Quelle nicht zum Laden von Daten aus einer Excel 2007-Datenquelle verwenden. Weitere Informationen finden Sie unter OLE DB-Verbindungs-Manager. Verwenden Sie zum Laden von Daten aus einer Datenquelle, für die Microsoft Office Excel 2003 oder eine frühere Version verwendet wird, eine Excel-Quelle. Weitere Informationen finden Sie unter Excel-Quelle.

Die OLE DB-Quelle stellt vier verschiedene Datenzugriffsmodi zum Extrahieren von Daten bereit:

  • Eine Tabelle oder Sicht.
  • Eine in einer Variablen angegebene Tabelle oder Sicht.
  • Die Ergebnisse einer SQL-Anweisung. Bei der Abfrage kann es sich um eine parametrisierte Abfrage handeln.
  • Die Ergebnisse einer SQL-Anweisung, die in einer Variablen gespeichert werden.

Wenn Sie eine parametrisierte Abfrage verwenden, können Sie Parametern Variablen zuordnen, um die Werte einzelner Parameter in SQL-Anweisungen anzugeben.

Diese Quelle verwendet einen OLE DB-Verbindungs-Manager zum Herstellen einer Verbindung zu einer Datenquelle, und der Verbindungs-Manager gibt den zu verwendenden OLE DB-Anbieter an. Weitere Informationen finden Sie unter OLE DB-Verbindungs-Manager.

Ein Integration Services-Projekt stellt außerdem das Datenquellenobjekt bereit, von dem Sie einen OLE DB-Verbindungs-Manager erstellen können, um Datenquellen und Datenquellensichten für die OLE DB-Quelle zur Verfügung zu stellen. Weitere Informationen finden Sie unter Datenquelle (SSIS) und Datenquellensicht (SSIS).

Je nach OLE DB-Anbieter gelten für die OLE DB-Quelle bestimmte Einschränkungen:

  • Der Microsoft OLE DB-Anbieter für Oracle unterstützt die Oracle-Datentypen BLOB, CLOB, NCLOB, BFILE oder UROWID nicht, und die OLE DB-Quelle kann keine Daten aus Tabellen extrahieren, die Spalten mit diesen Datentypen enthalten.
  • Der IBM OLE DB DB2-Anbieter und der Microsoft OLE DB DB2-Anbieter unterstützen keine SQL-Befehle, die eine gespeicherte Prozedur aufrufen. Wenn diese Art von Befehl verwendet wird, kann die OLE DB-Quelle die Spaltenmetadaten nicht erstellen. Für die Datenflusskomponenten, die im Datenfluss auf die OLE DB-Quelle folgen, sind deshalb keine Spaltendaten verfügbar, und beim Ausführen des Datenflusses wird ein Fehler gemeldet.

Die OLE DB-Quelle weist eine reguläre Ausgabe und eine Fehlerausgabe auf.

Verwenden parametrisierter SQL-Anweisungen

Die OLE DB-Quelle kann eine SQL-Anweisung zum Extrahieren von Daten verwenden. Die Anweisung kann eine SELECT- oder EXEC-Anweisung sein.

Die OLE DB-Quelle verwendet einen OLE DB-Verbindungs-Manager zum Herstellen einer Verbindung zur Datenquelle, aus der Daten extrahiert werden. Für die Benennung und Auflistung von Parametern gelten verschiedene Regeln, abhängig vom Anbieter, den der OLE DB-Verbindungs-Manager verwendet, und abhängig vom relationalen Datenbank-Managementsystem (RDBMS), zu dem der Verbindungs-Manager eine Verbindung herstellt. Wenn die Parameternamen vom RDBMS zurückgegeben werden, können Sie Parameternamen verwenden, um die in einer Parameterliste enthaltenen Parameterwerte den Parametern einer SQL-Anweisung zuzuordnen. Andernfalls erfolgt die Zuordnung nach der Ordnungsposition, in der die Parameter in der Parameterliste aufgeführt werden. Die jeweils unterstützten Typen von Parameternamen variieren je nach Anbieter. Beispielsweise erfordern einige Anbieter Variablen- oder Spaltennamen, andere Anbieter erfordern hingegen symbolische Namen, wie z. B. 0 oder Param0. Informationen zu den in SQL-Anweisungen zu verwendenden Parameternamen entnehmen Sie bitte der anbieterspezifischen Dokumentation.

Wenn Sie einen OLE DB-Verbindungs-Manager verwenden, können Sie keine parametrisierten Unterabfragen verwenden, weil die OLE DB-Quelle Parameterinformationen nicht über den OLE DB-Anbieter ableiten kann. Sie können jedoch einen Ausdruck verwenden, um die Parameterwerte zu einer Abfragezeichenfolge zu verketten und die SqlCommand-Eigenschaft der Quelle festzulegen.

Sie konfigurieren im SSIS-Designer eine OLE DB-Quelle mithilfe des Dialogfeldes Quellen-Editor für OLE DB und nehmen die Zuordnung von Parametern zu Variablen im Dialogfeld Abfrageparameter festlegen vor.

Angeben von Parametern mithilfe der Ordnungsposition

Werden keine Parameternamen zurückgegeben, steuert die Reihenfolge, in der die Parameter in der Liste Parameter im Dialogfeld Abfrageparameter festlegen aufgelistet werden, welche Parametermarkierungen zur Laufzeit zugeordnet werden. Der erste in der Liste aufgeführte Parameter wird dem ersten ? in der SQL-Anweisung zugeordnet, der zweite Parameter dem zweiten ? der SQL-Anweisung usw.

Die folgende SQL-Anweisung wählt die Zeilen aus der Product-Tabelle der AdventureWorks-Datenbank aus. Der erste Parameter der Mappings-Liste wird dem ersten Parameter der Color-Spalte und der zweite Parameter der Size-Spalte zugeordnet.

SELECT * FROM Production.Product WHERE Color = ? AND Size = ?

Die Parameternamen haben keine Auswirkungen. Wurde z. B. ein Parameter genauso benannt wie die Spalte, für die er gilt, jedoch nicht in der richtigen Ordnungsposition in der Parameters-Liste eingereiht, wird in der zur Laufzeit stattfindenden Parameterzuordnung die Ordnungsposition des Parameters verwendet, nicht der Parametername.

Der EXEC-Befehl erfordert in der Regel die Verwendung der Variablennamen, die in der Prozedur Parameterwerte als Parameternamen bereitstellen.

Angeben von Parametern mithilfe von Namen

Wenn die tatsächlichen Parameternamen vom RDBMS zurückgegeben werden, werden die von einer SELECT- und EXEC-Anweisung verwendeten Parameter den Namen zugeordnet. Die Parameternamen müssen den Namen entsprechen, die die gespeicherte Prozedur, die von der SELECT- oder EXEC-Anweisung ausgeführt wird, erwartet.

Die folgende SQL-Anweisung führt die in der AdventureWorks-Datenbank verfügbare gespeicherte Prozedur uspGetWhereUsedProductID aus.

EXEC uspGetWhereUsedProductID ?, ?

Die gespeicherte Prozedur erwartet, dass die @StartProductID- und @CheckDate-Variablen Parameterwerte bereitstellen. Dabei ist die Reihenfolge, in der die Parameter in der Mappings-Liste angezeigt werden, irrelevant. Die einzige Voraussetzung ist, dass die Parameternamen den Variablennamen der gespeicherten Prozedur entsprechen müssen. Hierzu zählt auch das @-Zeichen. Dabei ist die Reihenfolge, in der die Parameter in der Mappings-Liste angezeigt werden, irrelevant.

Zuordnen von Parametern zu Variablen

Die Parameter werden Variablen zugeordnet, die die Parameterwerte zur Laufzeit bereitstellen. Bei den Variablen handelt es sich in der Regel um benutzerdefinierte Variablen, obwohl sie auch die in Integration Services bereitgestellten Systemvariablen verwenden können. Stellen Sie beim Verwenden von benutzerdefinierten Variablen sicher, dass Sie den Datentyp auf einen Typ festlegen, der mit dem Datentyp der Spalte, auf die der zugeordnete Parameter verweist, kompatibel ist. Weitere Informationen finden Sie unter SQL Server Integration Services-Variablen.

Problembehandlung der OLE DB-Quelle

Seit Microsoft SQL Server 2005 Service Pack 2 (SP2) können Sie die von der OLE DB-Quelle an externe Datenprovider gerichteten Aufrufe protokollieren. Mithilfe dieser neuen Protokollierungsfunktionen können Sie Probleme beim Laden von Daten aus externen Datenquellen durch die OLE DB-Quelle behandeln. Aktivieren Sie zum Protokollieren der von der OLE DB-Quelle an einen externen Datenprovider gerichteten Aufrufe die Paketprotokollierung, und wählen Sie das Diagnostic-Ereignis auf Paketebene aus. Weitere Informationen finden Sie unter Paketausführung (Problembehandlung).

Konfigurieren der OLE DB-Quelle

Eigenschaften können Sie programmgesteuert oder mit dem SSIS-Designer festlegen.

Klicken Sie auf eines der folgenden Themen, um weitere Informationen zu den Eigenschaften zu erhalten, die Sie im Dialogfeld Quellen-Editor für OLE DB festlegen können:

Das Dialogfeld Erweiterter Editor enthält die Eigenschaften, die programmgesteuert festgelegt werden können. Klicken Sie auf eines der folgenden Themen, um weitere Informationen zu den Eigenschaften zu erhalten, die Sie im Dialogfeld Erweiterter Editor oder programmgesteuert festlegen können:

Klicken Sie auf eines der folgenden Themen, um weitere Informationen zum Festlegen von Eigenschaften zu erhalten:

Siehe auch

Konzepte

OLE DB-Ziel
SQL Server Integration Services-Variablen
Erstellen eines Paketdatenflusses

Andere Ressourcen

SQL Server Integration Services-Quellen

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

15. September 2007

Neuer Inhalt:
  • Es wurde erklärt, wie ein OLE DB-Verbindungs-Manager keine parametrisierten Unterabfragen verwenden kann.

12. Dezember 2006

Neuer Inhalt:
  • Ein Hinweis zur Verwendung von Excel 2007-Datenquellen wurde hinzugefügt.
  • Es wurden Informationen hinzugefügt, dass SQL Server 2005 SP2 neue Meldungen für die Protokollierung enthält, mit denen Benutzer Probleme bei Aufrufen behandeln können, die von der Quelle an externe Datenprovider gerichtet werden.

05. Dezember 2005

Neuer Inhalt:
  • Informationen über das Verwenden parametrisierter SQL-Anweisungen wurden hinzugefügt.