Domanda

Così sto cercando di fare un inserimento di massa con SSIS e continuamente ottenere:

"Microsoft SQL Native Client" Hresult: 0x80004005 Descrizione: "Stringa o dati binari verrebbero troncati"

Anche se ho già una conversione di dati per ogni colonna nella stessa tipo esatto della tabella che le righe sono sempre inseriti in. Ho usato una vista ei dati sembra che si suppone che poco prima della fase di inserimento DB. Ancora ottenere l'errore.

dopo sono andato in studio di gestione di SQL Server e di installazione una query di inserimento in quella tabella dannati e ancora ottenere lo stesso errore di troncamento. Poi ho fatto una serie ANSI_WARNINGS OFF e l'inserto funziona dati guarda bene nella tabella. Ora, quando provo a cancellare questa riga ottengo l'errore di troncamento.

La mia domanda oltre a qualsiasi ingresso di base per la situazione è come posso spegnere le ANSI_WARNINGS all'interno di SSIS in modo che il caricamento di massa può andare però?

È stato utile?

Soluzione 4

Risulta che in SSIS è possibile impostare la destinazione OLE DB con "Modalità di accesso ai dati> Tabella o vista: Fast Mode". Quando ho scelto questa impostazione l'inserimento di massa ha attraversato, senza eventuali avvisi o errori ed i dati sembra perfetto nel database. Non sei sicuro di ciò che questo cambiamento ha fatto esattamente ma ha funzionato e dopo 16 ore su un inserto SSIS sono felice con i risultati.

Grazie per i suggerimenti.

Altri suggerimenti

Sembra che si dispone di una colonna che è troppo stretta per accettare i dati che si sta presentando.

Si può verificare se questo è o non è il caso?

Ho avuto un problema molto simile si pone di frequente mentre stavamo inchiodare uno schema con una terza parte.

Si può selezionare un LEN di tutte le colonne nella vista? Questo potrebbe aiutare a trovare il problema.

Oltre a questo, l'unico modo che ho trovato è quello di stampare un rapporto delle lunghezze effettive delle colonne dati di origine.

Sembra che tu hai una riga (forse più, ma ci vuole solo uno!) In cui il valore dei dati supera la lunghezza delle colonne della tabella. Facendo una conversione di dati per il tipo più breve si sposterà l'errore a tutto ciò trasformare fa la conversione dalla destinazione. Quello che mi consiglia è la creazione di un file flat di destinazione e legando l'output di errore dei vostri trasforma ad esso. Modificare il risultato di errore a 'Redirect Row'. Questo permetterà tutte le righe valide per passare attraverso, e vi fornirà una copia della riga (s) che sono sempre troncato per voi per gestire manualmente.

Ci sono innesca sul tavolo si sta inserendo in? Poi l'errore può venire da un'azione che prende il grilletto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top