wake-up-neo.com

Der SQL Server-Importassistent schlägt mit einer unverständlichen Nachricht fehl

Ich möchte nur zwei Spalten aus einer flachen Datei in eine neue Tabelle importieren. Ich habe eine Spalte "Code" als varchar(50) und eine weitere Spalte "Beschreibung" als nvarchar(max) festgelegt.

Der Import schlägt mit folgenden Meldungen fehl:

- Executing (Error)
Messages
Error 0xc02020a1: Data Flow Task 1: Data conversion failed. The data conversion for column "Description" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
 (SQL Server Import and Export Wizard)

Error 0xc020902a: Data Flow Task 1: The "output column "Description" (14)" failed because truncation occurred, and the truncation row disposition on "output column "Description" (14)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.
 (SQL Server Import and Export Wizard)

Error 0xc0202092: Data Flow Task 1: An error occurred while processing file "C:\Users\rinaldo.tempo\Desktop\ICD10_Edition4_CodesAndTitlesAndMetadata_GB_20120401.txt" on data row 3.
 (SQL Server Import and Export Wizard)

Error 0xc0047038: Data Flow Task 1: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "Source - ICD10_Edition4_CodesAndTitlesAndMetadata_GB_20120401_txt" (1) returned error code 0xC0202092.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.
 (SQL Server Import and Export Wizard)

Die Fehlermeldung weist darauf hin, dass die Daten abgeschnitten werden, wenn sie in die Spalte "Beschreibung" eingefügt werden, die vom Typ nvarchar(max) ist! Wenn ich die Eingabedaten betrachtet habe, würde ich sagen, dass die Beschreibungen niemals mehr als 2 oder 300 Zeichen umfassen, daher kann dies nicht in Frage gestellt werden.

Kann jemand vorschlagen, was hier falsch ist?

13
David

Die Standardgröße für Zeichenfolgenspalten beträgt beim Import 50 Zeichen. Diese Kürzung erfolgt, bevor Daten in Ihre Datenbank übernommen werden. Sie sollten dies im ersten Schritt des Import-Assistenten im Abschnitt Columns anpassen.

30
Marcel N.

Der Fehler

"Text wurde abgeschnitten oder eines oder mehrere Zeichen stimmen nicht mit der Zielcodeseite überein."

kann auch vorkommen, wenn Ihre flache Quelle eine Unicode-Datei ist und Ihre Zielspalte als nvarchar(max) definiert ist.

SSIS führt zu Datentypen in der Quelldatei, indem eine begrenzte Anzahl von Zeilen geprüft und eine fundierte Vermutung erstellt wird. Aufgrund endlos wiederholter Versuche, das System zum Laufen zu bringen, wurden die Metadaten für den Datentyp OutputColumnWidth auf 50 Zeichen irgendwo auf dem Weg geparkt, wodurch das Paket intern gekürzt wurde.

Sehen Sie sich die Metadaten auf der Registerkarte "Erweitert" der Datenquelle an, um das Problem zu beheben.

2
Raj

Ich habe diese Nachricht auch erhalten, als ich versuchte, eine 275-Spaltentabelle zu laden. Egal was ich tat, ich konnte die Nachricht nicht bekommen, um wegzugehen. Es war wirklich schwierig, jeweils eine Spalte zu wechseln. Reparieren Sie einen, erhalten Sie einen Fehler in einem anderen. Plus scheinen einige nicht zu beheben.

Dann entfernte ich alle Zeichen ":" und "," aus der durch Tabulatoren getrennten Quelldatei, und sie wurde einfach geladen.

0
David Andrews

du kannst es auch versuchen.

wählen Sie alle nvarchar-Spalten als Dt_NTEXT in der erweiterten TAB aus, und wählen Sie dann bei der Datenkonvertierung DT_WSTR (Unicode_String) für die Alias-Spalte für alle Nvarchar-Datenfelder aus. 

Es hat für mich funktioniert :). Versuch es 

0
user3217761