Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
SSIS Integration Runtime w ramach usługi Azure Data Factory
Gdy składnik przepływu danych stosuje przekształcenie do danych kolumny, wyodrębnia dane ze źródeł lub ładuje dane do miejsc docelowych, mogą wystąpić błędy. Błędy często występują z powodu nieoczekiwanych wartości danych. Na przykład konwersja danych kończy się niepowodzeniem, ponieważ kolumna zawiera ciąg zamiast liczby; wstawienie do kolumny bazy danych kończy się niepowodzeniem, ponieważ dane są datą, a kolumna ma typ danych liczbowych; lub wyrażenie nie może być ocenione, ponieważ wartość kolumny jest równa zero, co prowadzi do nieprawidłowej operacji matematycznej.
Błędy zazwyczaj należą do jednej z następujących kategorii:
Błędy konwersji danych, które występują, jeśli konwersja powoduje utratę znaczących cyfr, utratę nieistotnych cyfr i obcięcie ciągów. Błędy konwersji danych występują również, jeśli żądana konwersja nie jest obsługiwana.
Błędy oceny wyrażeń, które występują, jeśli wyrażenia oceniane w czasie wykonywania wykonują nieprawidłowe operacje lub stają się niepoprawne składniowo z powodu brakujących lub nieprawidłowych wartości danych.
Błędy wyszukiwania, które występują, jeśli operacja wyszukiwania nie może zlokalizować dopasowania w tabeli odnośników.
Aby uzyskać listę błędów, ostrzeżeń i innych komunikatów usług Integration Services, zobacz Integration Services Error and Message Reference (Informacje o błędach i komunikatach usług Integration Services).
Użyj wyników błędów, aby wychwytywać błędy na poziomie wiersza
Wiele składników przepływu danych obsługuje wyjścia błędów, co pozwala kontrolować, jak składnik obsługuje błędy na poziomie wiersza zarówno przychodzących, jak i wychodzących. Określasz, jak zachowuje się składnik po obcięciu lub wystąpieniu błędu, ustawiając opcje dla poszczególnych kolumn w danych wejściowych lub wyjściowych. Można na przykład określić, że składnik powinien zakończyć działanie, jeśli jest ucięta nazwa klienta, ale ignoruj błędy w kolumnie z mniej istotnymi danymi.
Wyjście błędu można połączyć z wejściem innej transformacji lub załadować do innego miejsca docelowego niż wyjście bez błędów. Na przykład dane wyjściowe błędu mogą być połączone z transformacją kolumny pochodnej, która dostarcza ciąg znaków dla kolumny, gdy jest ona pusta.
Na poniższym diagramie przedstawiono prosty przepływ danych, w tym wyjście błędu.
Aby uzyskać więcej informacji, zobacz Przepływ danych i ścieżki usług integracji.
Okno dialogowe Konfigurowanie danych wyjściowych błędu
Okno dialogowe Konfigurowanie wyjścia błędów służy do konfigurowania opcji obsługi błędów dla przekształceń przepływu danych, które obsługują wyjście błędów.
Aby dowiedzieć się więcej na temat obsługi wyników błędów, zobacz Obsługa błędów w danych.
Opcje
Dane wejściowe lub wyjściowe
Wyświetl nazwę danych wyjściowych.
Kolumna
Wyświetl kolumny wyjściowe wybrane w oknie dialogowym edytora przekształceń.
Błąd
Jeśli ma to zastosowanie, określ, co powinno się zdarzyć, gdy wystąpi błąd: zignoruj błąd, przekieruj wiersz albo zawiedzie składnik.
Tematy związane:
Obcinania
Jeśli ma to zastosowanie, określ, co powinno wydarzyć się, gdy wystąpi obcięcie: zignoruj błąd, przekieruj wiersz lub składnik nie powiedzie się.
Tematy związane:
Opis
Wyświetl opis operacji.
Przypisz tę wartość do zaznaczonych komórek
Wskaż, co powinno się zdarzyć z wszystkimi zaznaczonymi komórkami, gdy wystąpi błąd lub obcięcie: zignoruj usterkę, przekieruj wiersz lub spowoduj niepowodzenie komponentu.
Zastosuj
Zastosuj opcję obsługi błędów do zaznaczonych komórek.
Błędy to awarie lub skrócenia
Błędy należą do jednej z dwóch kategorii: błędy lub przycięcia.
Błędy. Błąd wskazuje jednoznaczne niepowodzenie i generuje wynik NULL. Takie błędy mogą obejmować błędy konwersji danych lub błędy oceny wyrażeń. Na przykład próba przekonwertowania ciągu zawierającego znaki alfabetyczne na liczbę powoduje błąd. Konwersje danych, oceny wyrażeń i przypisania wyników wyrażeń do zmiennych, właściwości i kolumn danych mogą zakończyć się niepowodzeniem z powodu nielegalnych rzutów i niezgodnych typów danych. Aby uzyskać więcej informacji, zobacz Cast (SSIS Expression), Typy danych usług Integracji w wyrażeniach oraz Typy danych usług Integracji.
Obcięcia. Skrócenie jest mniej poważne niż błąd. Przycięcie generuje wyniki, które mogą być nie tylko użyteczne, ale nawet pożądane. Możesz traktować obcięcia jako błędy lub akceptowalne warunki. Jeśli na przykład wstawiasz 15-znakowy ciąg do kolumny, która ma tylko jeden znak szerokości, możesz wybrać obcięcie ciągu.
Wybierz opcję obsługi błędów
Możesz skonfigurować, jak źródła, przekształcenia i cele mają obsługiwać błędy i obcinanie. W poniższej tabeli opisano opcje.
| Opcja | Opis |
|---|---|
| Składnik niepowodzenia | Zadanie przepływu danych kończy się niepowodzeniem, gdy wystąpi błąd lub obcięcie. Niepowodzenie to domyślna opcja błędu i skrócenia. |
| Ignoruj błąd | Błąd lub obcięcie jest ignorowane, a wiersz danych jest kierowany do danych wyjściowych przekształcenia lub źródła. |
| Wiersz przekierowania | Błąd lub wiersz danych skróconego jest kierowany do wyjściowego strumienia błędów źródła, przekształcenia lub miejsca docelowego. |
Uzyskaj więcej informacji o błędzie
Oprócz kolumn danych, wynik błędu zawiera kolumny ErrorCode i ErrorColumn. Kolumna ErrorCode identyfikuje błąd, a kolumna ErrorColumn zawiera identyfikator pochodzenia kolumny błędu.
W pewnych okolicznościach wartość kolumny ErrorColumn jest ustawiona na zero. Dzieje się tak, gdy warunek błędu wpływa na cały wiersz zamiast jednej kolumny. Przykładem jest niepowodzenie wyszukiwania w transformacji Lookup.
Te dwie wartości liczbowe mogą być ograniczone do użycia bez odpowiedniego opisu błędu i nazwy kolumny. Poniżej przedstawiono kilka sposobów uzyskania opisu błędu i nazwy kolumny.
Możesz zobaczyć zarówno opisy błędów, jak i nazwy kolumn, dołączając przeglądarkę danych do wyjścia błędów. W projektancie usług SSIS kliknij prawym przyciskiem myszy czerwoną strzałkę prowadzącą do błędnych danych wyjściowych i wybierz pozycję Włącz podgląd danych.
Nazwy kolumn można znaleźć, włączając rejestrowanie i wybierając zdarzenie DiagnosticEx . To zdarzenie zapisuje mapę kolumny przepływu danych w dzienniku. Następnie możesz wyszukać nazwę kolumny z jej identyfikatora na tej mapie kolumn. Należy pamiętać, że zdarzenie DiagnosticEx nie zachowuje białych znaków w danych wyjściowych XML, aby zmniejszyć rozmiar dziennika. Aby zwiększyć czytelność, skopiuj dziennik do edytora XML — na przykład w programie Visual Studio — który obsługuje formatowanie XML i wyróżnianie składni. Aby uzyskać więcej informacji na temat rejestrowania, zobacz Rejestrowanie usług Integration Services (SSIS).
Oto przykład mapy kolumn przepływu danych.
\<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>Możesz również użyć składnika Script, aby uwzględnić opis błędu i nazwę kolumny w dodatkowych kolumnach danych wyjściowych błędu. Aby zapoznać się z przykładem, zobacz Udoskonalanie raportu błędu za pomocą składnika skryptu.
Dołącz opis błędu w dodatkowej kolumnie przy użyciu pojedynczego wiersza skryptu w celu wywołania GetErrorDescription metody interfejsu IDTSComponentMetaData100 .
Dołącz nazwę kolumny w dodatkowej kolumnie, używając pojedynczego wiersza skryptu do wywołania metody [Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100.GetIdentificationStringByID*] (/previous-versions/sql/sql-server-2016/mt657629(v=sql.130)) interfejsu IDTSComponentMetaData100.
Składnik Script można dodać do segmentu błędu przepływu danych w dowolnym miejscu podrzędnym ze składników przepływu danych, których błędy mają zostać przechwycone. Zazwyczaj składnik Script jest umieszczany bezpośrednio przed zapisaniem wierszy błędu w miejscu docelowym. W ten sposób skrypt wyszukuje opisy tylko dla wierszy błędów, które są zapisywane. Segment błędów przepływu danych może poprawić niektóre błędy i nie zapisywać tych wierszy w miejscu docelowym błędu.
Zobacz też
przepływ danych
Przekształcanie danych za pomocą przekształceń
Łączenie składników ze ścieżkami
Zadanie przepływu danych
przepływ danych