Erreur (échec de la phase de pré-exécution du nettoyage DQS) lors de l’exécution de la transformation de nettoyage DQS dans SQL Server 2012

Cet article vous aide à contourner le problème où une erreur est enregistrée dans le journal SSIS sur SQL Server 2012.

S’applique à : SQL Server 2012 Developer, SQL Server 2012 Enterprise, SQL Server 2012 Standard
Numéro de la base de connaissances d’origine : 2715968

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous utilisez la transformation de nettoyage DQS (Data Quality Services) dans un Data Flow SQL Server-Integrated Service (SSIS) pour nettoyer vos données dans Microsoft SQL Server 2012.
  • Vous définissez le paramètre « Configurer la sortie d’erreur » de la transformation de nettoyage DQS sur « Rediriger la ligne ». Toutefois, vous ne spécifiez pas d’emplacement pour enregistrer la sortie d’erreur.
  • Vous exécutez le package SSIS.

Dans ce scénario, le message d’erreur suivant est enregistré dans le journal SSIS :

Le nettoyage DQS a échoué lors de la phase de pré-exécution et a retourné le code d’erreur 0x80070057.
System.ArgumentException : la valeur n’entre pas dans la plage attendue.
sur Microsoft.SqlServer.Dts.pipeline.Wrapper.IDTSBufferManager100.FindColumnByLineageID(Int32 hBufferType, Int32 nLineageID)
sur Microsoft.Ssdqs.Component.DataCorrection.Logic.DataCorrectionComponent.PreExecute() à l’adresse Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute(IDTSManagedComponentWrapper100 wrapper)

Cause

Ce problème se produit car aucune destination n’est définie pour la sortie d’erreur générée pour les lignes qui ne répondent pas aux critères et règles du domaine DQS.

Solution de contournement

Pour résoudre ce problème, appliquez l’une des méthodes suivantes.

  • Méthode 1

    Si vous ne souhaitez pas rediriger les lignes d’erreur, procédez comme suit pour résoudre le problème :

    1. Ouvrez le composant DQS dans la Rédacteur transformation de nettoyage DQS.
    2. Sélectionnez Composant d’échec dans la liste déroulante Configurer la sortie d’erreur en bas de la Rédacteur de transformation de nettoyage DQS.
  • Méthode 2

    Si vous devez rediriger vos lignes d’erreur, vous devez vous assurer que vous disposez d’un emplacement de destination pour les erreurs à rediriger.