Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Il testo è stato troncato o uno o più caratteri non hanno corrispondenze nella tabella codici di destinazione durante l'importazione da file Excel

Presumo che tu stia tentando di importarlo utilizzando un'origine Excel nella finestra di dialogo SSIS?

In tal caso, il problema è probabilmente che SSIS campiona un certo numero di righe all'inizio del foglio di calcolo quando crea l'origine Excel. Se nella colonna [ShortDescription] non si nota nulla di troppo grande, verrà impostata automaticamente una colonna di testo di 255 caratteri.

Quindi, per importare dati da una colonna che contiene righe con grandi quantità di dati senza troncamento, sono disponibili due opzioni:

  1. Devi assicurarti che la colonna [ShortDescription] in almeno una delle righe campionate contenga un valore più lungo di 255 caratteri. Un modo per farlo è usare la funzione REPT(), ad es. =REPT('z', 4000), che creerà una stringa di 4000 della lettera 'z'.
  2. È necessario aumentare il numero di righe campionate dal driver Jet Excel per includere tale riga. Puoi aumentare il numero di righe campionate aumentando il valore di TypeGuessRows in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel (se il tuo sistema è x64, quindi sotto HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\Microsoft\Jet\4.0\Engines\Excel )chiave di registro.

Puoi vedere maggiori informazioni a questi due link:

Per spiegare ulteriormente, SSIS crea 3 oggetti dietro le quinte della procedura guidata, un oggetto origine dati Excel, un oggetto di destinazione tabella SQL e un operatore del flusso di dati tra di loro. L'oggetto di origine Excel definisce i dati di origine ed esiste indipendentemente dagli altri due oggetti. Quindi, quando viene creato, il campionamento che ho descritto è terminato e viene impostata la dimensione della colonna di origine. Pertanto, quando l'operatore del flusso di dati esegue e tenta di estrarre i dati da Excel per inserirli nella tabella, sta già esaminando un'origine dati limitata a 255 caratteri.