Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
SSIS Integration Runtime i Azure Data Factory
När en dataflödeskomponent tillämpar en transformering på kolumndata, extraherar data från källor eller läser in data till mål kan fel uppstå. Fel uppstår ofta på grund av oväntade datavärden. En datakonvertering misslyckas till exempel eftersom en kolumn innehåller en sträng i stället för ett tal, en infogning i en databaskolumn misslyckas eftersom data är ett datum och kolumnen har en numerisk datatyp, eller så kan ett uttryck inte utvärderas eftersom ett kolumnvärde är noll, vilket resulterar i en matematisk åtgärd som inte är giltig.
Fel hamnar vanligtvis i en av följande kategorier:
Datakonverteringsfel, som uppstår om en konvertering resulterar i förlust av betydande siffror, förlust av obetydliga siffror och trunkering av strängar. Datakonverteringsfel uppstår också om den begärda konverteringen inte stöds.
Uttrycksutvärderingsfel, som uppstår om uttryck som utvärderas under körning utför ogiltiga åtgärder eller blir syntaktiskt felaktiga på grund av saknade eller felaktiga datavärden.
Uppslagsfel, som uppstår om en sökningsåtgärd inte kan hitta en matchning i uppslagstabellen.
En lista över Integration Services-fel, varningar och andra meddelanden finns i Fel och meddelandereferens för Integration Services.
Använd felutdata för att registrera fel på radnivå
Många dataflödeskomponenter stöder felutdata, vilket gör att du kan styra hur komponenten hanterar radnivåfel i både inkommande och utgående data. Du anger hur komponenten beter sig när trunkering eller ett fel inträffar genom att ange alternativ för enskilda kolumner i indata eller utdata. Du kan till exempel ange att komponenten ska misslyckas om kundnamnsdata trunkeras, men ignorera fel i en annan kolumn som innehåller mindre viktiga data.
Felutdata kan anslutas till indata från en annan transformering eller läsas in till ett annat mål än icke-felutdata. Till exempel kan felutdata vara anslutna till en transformering av härledda kolumner som tillhandahåller en sträng för en kolumn som är tom.
Följande diagram visar ett enkelt dataflöde inklusive en felutgång.
Mer information finns i Dataflöde och Integrationstjänsters sökvägar.
Dialogruta för konfigurering av felutdata
Använd dialogrutan Konfigurera felutdata för att konfigurera alternativ för felhantering för dataflödestransformeringar som stöder ett felutdata.
Mer information om hur du arbetar med felutdata finns i Felhantering i Data.
Alternativ
Indata eller utdata
Visa namnet på utdata.
Kolumn
Visa de utdatakolumner som du valde i dialogrutan transformeringsredigeraren.
Fel
Om tillämpligt anger du vad som ska hända när ett fel inträffar: ignorera felet, omdirigera raden eller fela komponenten.
Relaterade ämnen:felhantering i data
Trunkering
Om tillämpligt anger du vad som ska hända när en trunkering inträffar: ignorera misslyckandet, omdirigera raden eller låta komponenten misslyckas.
Relaterade ämnen:felhantering i data
Beskrivning
Visa beskrivningen av åtgärden.
Ange det här värdet till markerade celler
Ange vad som ska hända med alla markerade celler när ett fel eller avkortning inträffar: ignorera felet, omdirigera raden, eller låta komponenten misslyckas.
Använda
Använd alternativet för felhantering för de markerade cellerna.
Fel är antingen misslyckanden eller trunkeringar.
Misstag hamnar i någon av två kategorier: fel eller avkortningar.
Fel. Ett fel anger ett otvetydigt fel och genererar ett NULL-resultat. Sådana fel kan omfatta datakonverteringsfel eller uttrycksutvärderingsfel. Ett försök att konvertera en sträng som innehåller alfabetiska tecken till ett tal orsakar till exempel ett fel. Datakonverteringar, uttrycksutvärderingar och tilldelningar av uttrycksresultat till variabler, egenskaper och datakolumner kan misslyckas på grund av otillåtna avbildningar och inkompatibla datatyper. Mer information finns i Cast (SSIS Expression), Integration Services Data Types in Expressions och Integration Services Data Types.
Trunkeringar. En trunkering är mindre allvarlig än ett fel. En avkortning genererar resultat som kan vara användbara eller ännu mer önskvärda. Du kan välja att behandla trunkeringar som fel eller som godkända villkor. Om du till exempel infogar en sträng med 15 tecken i en kolumn som bara är ett tecken brett, kan du välja att trunkera strängen.
Välj ett alternativ för felhantering
Du kan konfigurera hur källor, transformationer och målen hanterar fel och trunkeringar. Alternativen beskrivs i tabellen nedan.
| Alternativ | Beskrivning |
|---|---|
| Felaktig komponent | Dataflödesaktiviteten misslyckas när ett fel eller en trunkering inträffar. Misslyckande är standardalternativet för ett fel och en trunkering. |
| Ignorera misslyckande | Felet eller trunkeringen ignoreras och dataraden dirigeras till utdata från omvandlingen eller källan. |
| Omdirigeringsrad | Felet eller trunkeringsdataraden dirigeras till felutgången för källan, omvandlingen eller destinationen. |
Få mer information om felet
Förutom datakolumnerna innehåller felutdata kolumnerna ErrorCode och ErrorColumn . Kolumnen ErrorCode identifierar felet och ErrorColumn innehåller ursprungsidentifieraren för felkolumnen.
Under vissa omständigheter anges värdet för kolumnen ErrorColumn till noll. Detta inträffar när feltillståndet påverkar hela raden i stället för en enda kolumn. Ett exempel är när ett uppslag misslyckas i uppslagstransformeringen.
Dessa två numeriska värden kan vara av begränsad användning utan motsvarande felbeskrivning och kolumnnamn. Här följer några sätt att hämta felbeskrivningen och kolumnnamnet.
Du kan se både felbeskrivningar och kolumnnamn genom att koppla ett datavisningsprogram till felutdata. I SSIS Designer högerklickar du på den röda pilen som leder till ett felutdata och väljer Aktivera datavisningsprogram.
Du hittar kolumnnamn genom att aktivera loggning och välja DiagnosticEx-händelsen . Den här händelsen skriver en dataflödeskolumnkarta till loggen. Du kan sedan leta upp kolumnnamnet från dess identifierare i den här kolumnkartan. Observera att DiagnosticEx-händelsen inte bevarar blanksteg i sina XML-utdata för att minska loggens storlek. För att förbättra läsbarheten kopierar du loggen till en XML-redigerare – till exempel i Visual Studio – som stöder XML-formatering och syntaxmarkering. Mer information om loggning finns i Loggning av Integration Services (SSIS).
Här är ett exempel på en kolumnkarta för dataflöde.
\<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>Du kan också använda skriptkomponenten för att inkludera felbeskrivningen och kolumnnamnet i ytterligare kolumner i felutdata. Ett exempel finns i Förbättra ett felutdata med skriptkomponenten.
Inkludera felbeskrivningen i en ytterligare kolumn med hjälp av en enda rad med skript för att anropa GetErrorDescription -metoden för IDTSComponentMetaData100 gränssnittet.
Inkludera kolumnnamnet i en ytterligare kolumn med hjälp av en enda skriptrad för att anropa metoden [Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100.GetIdentificationStringByID*] (/previous-versions/sql/sql-server-2016/mt657629(v=sql.130)) i IDTSComponentMetaData100 gränssnittet.
Du kan lägga till skriptkomponenten i felsegmentet för dataflödet var som helst nedströms från de dataflödeskomponenter vars fel du vill samla in. Vanligtvis placerar du skriptkomponenten omedelbart innan felraderna skrivs till ett mål. På så sätt söker skriptet bara upp beskrivningar för felrader som skrivs. Felsegmentet i dataflödet kan korrigera vissa fel och inte skriva dessa rader till ett felmål.
Se även
Dataflöde
Transformera data med transformeringar
Ansluta komponenter med sökvägar
Dataflödesuppgift
Dataflöde