Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
SSIS Integration Runtime in Azure Data Factory
Wenn eine Datenflusskomponente eine Transformation auf Spaltendaten anwendet, Daten aus Quellen extrahiert oder Daten in Ziele lädt, können Fehler auftreten. Fehler treten häufig aufgrund unerwarteter Datenwerte auf. Beispielsweise schlägt eine Datenkonvertierung fehl, weil eine Spalte eine Zeichenfolge anstelle einer Zahl enthält, das Einfügen in eine Datenbankspalte schlägt fehl, weil die Daten ein Datum sind und die Spalte einen numerischen Datentyp hat, oder ein Ausdruck kann nicht ausgewertet werden, weil ein Spaltenwert null ist, was zu einer ungültigen mathematischen Operation führt.
Fehler können in der Regel einer der folgenden Kategorien zugeordnet werden:
Datenkonvertierungsfehler, die auftreten, wenn eine Konvertierung zum Verlust signifikanter Ziffern, zum Verlust insignifikanter Ziffern und zum Abschneiden von Zeichenfolgen führt. Datenkonvertierungsfehler treten außerdem auf, wenn die angeforderte Konvertierung nicht unterstützt wird.
Fehler bei der Ausdrucksauswertung. Sie treten auf, wenn Ausdrücke, die zur Laufzeit ausgewertet werden, ungültige Vorgänge ausführen oder aufgrund fehlender oder falscher Datenwerte syntaktisch falsch sind.
Suchfehler, die auftreten, wenn ein Suchvorgang keine Übereinstimmung in der Nachschlagetabelle findet.
Eine Liste der Fehler, Warnungen und anderen Meldungen in Integration Services finden Sie unter Fehler- und Meldungsreferenz von Integration Services.
Verwenden Sie Fehlerausgaben, um Fehler auf Zeilenebene zu erfassen.
Viele Datenflusskomponenten unterstützen Fehlerausgaben, mit denen Sie steuern können, wie die Komponente Fehler auf Zeilenebene in ein- und ausgehenden Daten behandelt. Sie geben das Verhalten der Komponente an, wenn Daten abgeschnitten werden oder ein Fehler auftritt, indem Sie Optionen für einzelne Spalten in der Eingabe oder Ausgabe festlegen. Beispielsweise können Sie angeben, dass bei der Komponente ein Fehler auftritt, wenn die Daten für den Kundennamen abgeschnitten werden, dass aber Fehler in einer anderen Spalte, die weniger wichtige Daten enthält, ignoriert werden.
Die Fehlerausgabe kann mit der Eingabe einer anderen Transformation verbunden werden oder in ein anderes Ziel als die Nichtfehlerausgabe geladen werden. Beispielsweise kann die Fehlerausgabe mit einer Transformation für abgeleitete Spalten verbunden werden, die eine Zeichenfolge für eine leere Spalte bereitstellt.
Im folgenden Diagramm wird ein einfacher Datenfluss mit einer Fehlerausgabe dargestellt.
Weitere Informationen finden Sie unter Datenfluss und Integration Services-Pfade.
Dialogfeld „Fehlerausgabe konfigurieren“
Mithilfe des Dialogfelds Fehlerausgabe konfigurieren können Sie die Fehlerbehandlungsoptionen für Datenflusstransformationen konfigurieren, die eine Fehlerausgabe unterstützen.
Weitere Informationen zum Arbeiten mit Fehlerausgaben finden Sie unter Fehlerbehandlung in Daten.
Optionen
Eingabe oder Ausgabe
Zeigen Sie den Namen der Ausgabe an.
Spalte
Zeigen Sie die Ausgabespalten an, die Sie im Dialogfeld des Transformations-Editors ausgewählt haben.
Fehler
Legen Sie gegebenenfalls fest, was geschehen soll, wenn ein Fehler auftritt: den Fehler ignorieren, die Zeile umleiten oder für die Komponente einen Fehler auslösen.
Verwandte Themen:Fehlerbehandlung in Daten
Abschneidung
Geben Sie gegebenenfalls an, was geschehen soll, wenn ein Abschneiden auftritt: Fehler ignorieren, die Zeile umleiten oder für die Komponente einen Fehler ausgeben.
Verwandte Themen:Fehlerbehandlung in Daten
Beschreibung
Zeigt die Beschreibung des Vorgangs an.
Diesen Wert für ausgewählte Zellen festlegen
Legen Sie fest, was mit allen ausgewählten Zellen geschehen soll, wenn ein Fehler auftritt oder Daten abgeschnitten werden: den Fehler ignorieren, die Zeile umleiten oder einen Fehler für die Komponente verursachen.
Anwenden
Wendet die Fehlerbehandlungsoption auf die ausgewählten Zellen an.
Fehler sind entweder Ausfälle oder Abschneidungen
Fehler fallen in eine von zwei Kategorien: Fehler oder Abschneidungen.
Fehler. Ein Fehler ist ein Hinweis auf ein eindeutiges Problem, und es wird ein NULL-Ergebnis generiert. Hierzu zählen Fehler bei der Datenkonvertierung oder bei der Ausdrucksauswertung. Beispielsweise wird ein Fehler verursacht, wenn eine Zeichenfolge, die Buchstaben enthält, in eine Zahl konvertiert wird. Datenkonvertierungen, Auswertungen von Ausdrücken sowie Zuweisungen von Ausdrucksergebnissen zu Variablen, Eigenschaften und Datenspalten erzeugen aufgrund von unzulässigen Umwandlungen und inkompatiblen Datentypen möglicherweise einen Fehler. Weitere Informationen finden Sie unter Cast (SSIS-Ausdruck), Integration Services-Datentypen in Ausdrücken und Integration Services-Datentypen.
Trunkierungen. Ein Abschneiden ist weniger schwerwiegend als ein Fehler. Eine Abschneidung führt zu Ergebnissen, die nutzbar oder sogar wünschenswert sein können. Sie können festlegen, dass Abschneidungen als Fehler oder als akzeptable Zustände behandelt werden. Wenn Sie z. B. eine Zeichenfolge mit 15 Zeichen in eine Spalte einfügen, die nur eine Breite von einem Zeichen aufweist, können Sie festlegen, dass die Zeichenfolge abgeschnitten wird.
Auswählen einer Fehlerbehandlungsoption
Sie können konfigurieren, wie Quellen, Transformationen und Zielsysteme mit Fehlern und Abschneidungen umgehen. In der folgenden Tabelle werden diese Optionen beschrieben.
| Auswahlmöglichkeit | BESCHREIBUNG |
|---|---|
| Fehlerhafte Komponente | Der Datenfluss-Task schlägt fehl, wenn ein Fehler oder eine Abschneidung auftritt. Fehler ist die Standardoption bei einem Fehler und einer Abschneidung. |
| Fehler ignorieren | Der Fehler oder das Abschneiden von Daten wird ignoriert, und die Datenzeile wird an die Ausgabe der Transformation oder Quelle weitergeleitet. |
| Zeile umleiten | Die Fehlerzeile oder die Datenzeile mit abgeschnittenen Daten wird an die Fehlerausgabe der Quelle, der Transformation oder des Ziels weitergeleitet. |
Weitere Informationen zu dem Fehler
Neben den Datenspalten enthält die Fehlerausgabe die Spalten ErrorCode und ErrorColumn . Die ErrorCode -Spalte gibt den Fehler an, und die ErrorColumn -Spalte enthält den Herkunftsbezeichner der Fehlerspalte.
Unter einigen Umständen wird der Wert der ErrorColumn -Spalte auf 0 festgelegt. Dies ist der Fall, wenn sich die Fehlerbedingung nicht auf eine einzelne Spalte, sondern auf die gesamte Zeile auswirkt. Dies ist beispielsweise der Fall, wenn eine Suche in der Lookup-Transformation fehlschlägt.
Diese beiden numerischen Werte sind ohne die entsprechende Fehlerbeschreibung und den Spaltennamen nur von begrenztem Nutzen. Hier sind einige Möglichkeiten, die Fehlerbeschreibung und den Spaltennamen abzurufen.
Sie können sowohl die Fehlerbeschreibung als auch den Spaltennamen anzeigen, indem Sie einen Daten-Viewer an die Fehlerausgabe anfügen. Klicken Sie im SSIS-Designer mit der rechten Maustaste auf den roten Pfeil, der zu einer Fehlerausgabe führt, und wählen Sie Daten-Viewer aktivierenaus.
Sie finden die Spaltennamen, indem Sie die Protokollierung aktivieren und das DiagnosticEx -Ereignis auswählen. Dieses Ereignis schreibt eine Spaltenzuordnung für den Datenfluss in das Protokoll. Anschließend können Sie den Namen der Spalte anhand ihres Bezeichners in dieser Spaltenzuordnung nachschlagen. Beachten Sie, dass Leerraum in der XML-Ausgabe beim DiagnosticEx -Ereignis nicht beibehalten wird, um die Größe des Protokolls zu verringern. Kopieren Sie das Protokoll in einen XML-Editor wie z.B. Visual Studio, der XML-Formatierung und Syntaxhervorhebung unterstützt, um die Lesbarkeit zu verbessern. Weitere Informationen zur Protokollierung finden Sie unter Integration Services-Protokollierung (SSIS).
Nachstehend finden Sie ein Beispiel der Spaltenzuordnung für den Datenfluss.
\<DTS:PipelineColumnMap xmlns:DTS="www.microsoft.com/SqlServer/Dts"> \<DTS:Pipeline DTS:Path="\Package\Data Flow Task"> \<DTS:Column DTS:ID="11" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Customer]"/> \<DTS:Column DTS:ID="12" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Product]"/> \<DTS:Column DTS:ID="13" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Price]"/> \<DTS:Column DTS:ID="14" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Timestamp]"/> \<DTS:Column DTS:ID="20" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Customer]"/> \<DTS:Column DTS:ID="21" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Product]"/> \<DTS:Column DTS:ID="22" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Price]"/> \<DTS:Column DTS:ID="23" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Timestamp]"/> \<DTS:Column DTS:ID="24" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[ErrorCode]"/> \<DTS:Column DTS:ID="25" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[ErrorColumn]"/> \<DTS:Column DTS:ID="31" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Customer]"/> \<DTS:Column DTS:ID="32" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Product]"/> \<DTS:Column DTS:ID="33" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Price]"/> \<DTS:Column DTS:ID="34" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Timestamp]"/> \</DTS:Pipeline> \</DTS:PipelineColumnMap>Sie können darüber hinaus die Skriptkomponente nutzen, um die Fehlerbeschreibung und den Spaltennamen in die zusätzlichen Spalten der Fehlerausgabe mitaufzunehmen. Ein Beispiel finden Sie unter Erweitern einer Fehlerausgabe mit der Skriptkomponente.
Schließen Sie die Fehlerbeschreibung in einer zusätzlichen Spalte ein, indem Sie für den Aufruf der GetErrorDescription -Methode der IDTSComponentMetaData100 -Schnittstelle eine einzelne Zeile des Skripts verwenden.
Fügen Sie den Spaltennamen in eine zusätzliche Spalte ein, indem Sie eine einzelne Skriptzeile verwenden, um die Methode [Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100.GetIdentificationStringByID*] (/previous-versions/sql/sql-server-2016/mt657629(v=sql.130)) der IDTSComponentMetaData100-Schnittstelle aufzurufen.
Sie können die Skriptkomponente dem Fehlersegment des Datenflusses an einem beliebigen Ort unterhalb der Datenflusskomponenten hinzufügen, deren Fehler Sie erfassen möchten. In der Regel platzieren Sie die Skriptkomponente unmittelbar bevor die Fehlerzeilen in ein Ziel geschrieben werden. Auf diese Weise sucht das Skript nur nach Beschreibungen für geschriebene Fehlerzeilen. Das Fehlersegment des Datenflusses korrigiert u.U. einige Fehler und schreibt diese Zeilen nicht in ein Fehlerziel.