KB2960989 - FIX: Errore quando si utilizza il componente di pulizia DQS con batch di grandi dimensioni in un pacchetto SSIS 2012 o SSIS 2014

Si applica a
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Sintomi

Si supponga di utilizzare il componente pulizia DQS (Data Quality Services) con batch di grandi dimensioni in un pacchetto di Microsoft SQL Server 2012 Integration Services (SSIS 2012) o SQL Server 2014 Integration Services (SSIS 2014). Quando tenti di eseguire il pacchetto, potresti ricevere i seguenti risultati:

  • Viene visualizzato l'errore seguente all'interno del pacchetto SSIS

    Nota

    OnError,MachineName,UserName,attività Flusso di dati - Passare i dati tramite DQS,{9C749B1D-3FAF-4E3B-B0B9-C8BA626428F5},{B8582806-2FDB-43EF-8E69-B43E6A375DD2},<Data></ora,Data>><< ora,0,0x,Il> valore '<ValoreStringa>' nella colonna <NomeColon>' non rientra nel buffer corrente.<><> La lunghezza del valore è 11, ma la lunghezza della colonna di output è 1.
    OnError,MachineName,UserNname,DQS_Test,{AF400590-A48A-4483-87A0-A5CC5AC8BF09},{B8582806-2FDB-43EF-8E69-B43E6A375DD2},<Date><Time,Date>><< Time,0,0x,The> value '<StringValue>' in column <ColumnName>' non corrisponde al buffer corrente.<><> La lunghezza del valore è 11, ma la lunghezza della colonna di output è 1.
    OnError,MachineName,UserName,attività Flusso di dati - Passare i dati tramite DQS,{9C749B1D-3FAF-4E3B-B0B9-C8BA626428F5},{B8582806-2FDB-43EF-8E69-B43E6A375DD2},<Data><ora,Data<><> ora,0,0x,Si> è verificato un errore imprevisto nell'infrastruttura DQS.<><>
    Microsoft.SqlServer.Dts.Pipeline.DoesNotFitBufferException: il valore è troppo grande per rientrare nell'area dei dati della colonna del buffer.
       in Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer.SetString(Int32 columnIndex, String value)
       in Microsoft.Ssdqs.Component.Common.Utilities.ComponentUtility.SetValue(IDTSComponentMetaData100 componentMetadata, Buffer PipelineBuffer, Int32 fieldIndex, DataType type, Int32 length, String columnName, Object value) at Microsoft.Ssdqs.Component.DataCorrection.Logic.DataCorrectionComponent.ProcessChunk(ReadOnlyCollection'1 fieldMappings, ReadOnlyCollection'1 records, CorrectedRecordsStatusStatistics& correctedRecordsTotalStatusStatistics)

  • Una volta completato il pacchetto, aprire il progetto generato nel client DQS ed esaminare uno dei domini. Se si ordina il dominio in base al valore, è possibile che vengano visualizzati i valori di altri domini.

Nota Il tasso di errore di questo problema dipende dalle dimensioni del batch. Quando le dimensioni del batch sono maggiori, il tasso di errore sarà maggiore.

Risoluzione

Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.

Aggiornamento cumulativo 1 per SQL Server 2012 SP2 /en-us/help/2976982

Aggiornamento cumulativo 2 per SQL Server 2014 /en-us/help/2967546

Aggiornamento cumulativo 10 per SQL Server 2012 SP1 /en-us/help/2954099

Informazioni sugli aggiornamenti cumulativi per SQL Server

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli aggiornamenti rapidi e tutte le correzioni per la sicurezza inclusi nell'aggiornamento cumulativo precedente. Scopri gli aggiornamenti cumulativi più recenti per SQL Server:

      

Soluzione alternativa

Per risolvere il problema, ridurre le dimensioni del batch per risolvere o risolvere il problema.

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".