Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Beim Import aus einer Excel-Datei wurde Text abgeschnitten oder ein oder mehrere Zeichen hatten keine Übereinstimmung in der Ziel-Codepage

Ich nehme an, Sie versuchen, dies mit einer Excel-Quelle im SSIS-Dialogfeld zu importieren?

Wenn dies der Fall ist, besteht das Problem wahrscheinlich darin, dass SSIS beim Erstellen der Excel-Quelle einige Zeilen am Anfang Ihrer Tabelle abtastet. Wenn es in der Spalte [ShortDescription] nichts zu Großes bemerkt, wird standardmäßig eine Textspalte mit 255 Zeichen verwendet.

Um also Daten aus einer Spalte zu importieren, die Zeilen mit großen Datenmengen ohne Kürzung enthält, gibt es zwei Optionen:

  1. Sie müssen sicherstellen, dass die Spalte [ShortDescription] in mindestens einer der Stichprobenzeilen einen Wert enthält, der länger als 255 Zeichen ist. Eine Möglichkeit, dies zu tun, ist die Verwendung der Funktion REPT(), z. =REPT('z', 4000), wodurch eine Zeichenfolge von 4000 aus dem Buchstaben 'z' erstellt wird.
  2. Sie müssen die Anzahl der vom Jet Excel-Treiber abgetasteten Zeilen erhöhen, um eine solche Zeile einzuschließen. Sie können die Anzahl der abgetasteten Zeilen erhöhen, indem Sie den Wert von TypeGuessRows unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel erhöhen (Wenn Ihr System x64 ist, dann unter HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\Microsoft\Jet\4.0\Engines\Excel )Registrierungsschlüssel.

Weitere Informationen finden Sie unter diesen beiden Links:

Zur weiteren Erläuterung erstellt SSIS drei Objekte hinter den Kulissen des Assistenten, ein Excel-Datenquellenobjekt, ein SQL-Tabellenzielobjekt und einen Datenflussoperator zwischen ihnen. Das Excel-Quellobjekt definiert die Quelldaten und existiert unabhängig von den beiden anderen Objekten. Wenn es also erstellt wird, wird das von mir beschriebene Sampling durchgeführt und die Größe der Quellspalte festgelegt. Wenn also der Datenflussoperator ausgeführt wird und versucht, die Daten aus Excel abzurufen, um sie in Ihre Tabelle einzufügen, betrachtet er bereits eine Datenquelle, die auf 255 Zeichen begrenzt ist.