2013-01-08 14 views
9

Ich möchte nur zwei Spalten aus einer Flat-Datei in eine neue Tabelle importieren. Ich habe eine Spalte "Code" als varchar(50) und eine weitere Spalte "Description" als nvarchar(max) festgelegt.SQL Server-Importassistent schlägt mit unverständlicher Nachricht fehl

Der Import schlägt mit den folgenden Meldungen:

- 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 schlägt mir, dass Daten abgeschnitten werden immer, wie es in der Spalte ‚Beschreibung‘ gelegt ist, die nvarchar(max) vom Typ! Wenn ich die Eingabedaten überarbeite, würde ich sagen, dass die Beschreibungen nie mehr als etwa 2 oder 300 Zeichen haben, so dass dies nicht in Frage kommt.

Kann jemand vorschlagen, was hier falsch ist?

+0

Ah, die erste Aufgabe, die ich ziemlich klar, dass dies ein Codepage-Konvertierungsproblem ist. Speichern von nicht-englischen H-Charaktern in einer ASCII-Zeichenfolge? – TomTom

+2

Sie wurden jetzt schikaniert. Willkommen zu den Schmerzen von SSIS. Für einen Import versuchen Sie einfach 'bcp'. – ErikE

+0

Ich dachte, jemand würde meinen zickigen kleinen Wisch beim Import-Assistenten entfernen, aber stattdessen wurde ich hochgestuft. : D – David

Antwort

26

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

+0

Ja, aus Gründen, die ich nicht verstehe, gibt es mehr als einen Platz, um die Breite der Spalte festzulegen. Vielen Dank. – David

+1

Danke! Ich steckte hier fest und dachte immer daran, dass es sich um ein Codepage-Problem handelte, weil ich nicht gesehen habe, dass ich Spaltenbreiten an zwei Stellen einstellen musste. –

+0

marceln, danke für diese Antwort. – GeorgeC

2

Der Fehler

„Text abgeschnitten wurde, oder ein oder mehr Zeichen hatten keine Übereinstimmung in der Ziel-Codepage.“

auch dann auftreten können, wenn Ihre Quelle Flat-File-Spalte eine Unicode-Datei und Ihr Ziel ist als nvarchar(max) definiert.

SSIS leitet Datentypen in der Quelldatei vom Scannen einer begrenzten Anzahl von Zeilen und einer fundierten Schätzung ab. Aufgrund endlos wiederholter Versuche, es an die Arbeit zu bringen, parkte es die Metadaten für den Datentyp OutputColumnWidth auf 50 Zeichen irgendwo auf dem Weg, was zu einer internen Kürzung des Pakets führte.

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

0

Sie cam versuchen Sie dies auch.

wählen Sie die alle nvarchar Spalten als Dt_NTEXT im Voraus TAB und dann in der Datenkonvertierung, wählen DT_WSTR (UNICODE_STRING) für die Spalte Alias ​​für alle Nvarchar Datenfelder.

Es funktionierte für mich :). Versuchen Sie es

0

Ich habe diese Nachricht auch beim Versuch, eine 275 Spalte Tabelle zu laden. Egal, was ich tat, ich konnte die Nachricht nicht loswerden. Es war sehr schwierig, jeweils eine Spalte zu ändern. Fix eins, bekomme einen Fehler in einem anderen. Plus einige würden nicht scheinen zu beheben.

Dann habe ich alle ":" und "," - Zeichen aus der Tab-Delimited-Quelldatei entfernt, und es wurde einfach geladen.

Verwandte Themen