web-dev-qa-db-ja.com

SQLServerインポートウィザードが理解できないメッセージで失敗する

フラットファイルから2つの列を新しいテーブルにインポートしたいだけです。 1つの列 'Code'をvarchar(50)に設定し、別の列 'Description'をnvarchar(max)に設定しました。

インポートは次のメッセージで失敗します。

_- 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)
_

エラーメッセージは、データがnvarchar(max)タイプの[説明]列に配置されているため、データが切り捨てられていることを示しています。入力データに目を向けると、説明は2文字または300文字を超えることはないので、これは問題外です。

誰かがここで何が悪いのか提案できますか?

13
David

インポートでの文字列列のデフォルトサイズは50文字です。この切り捨ては、データがデータベースに送られる前に発生します。これは、インポートウィザードの最初のステップであるColumnsセクションで調整する必要があります。

31
Marcel N.

エラー

「テキストが切り捨てられたか、ターゲットコードページで1つ以上の文字が一致しませんでした。」

ソースフラットファイルがUnicodeファイルの場合でも発生する可能性がありますandターゲット列がnvarchar(max)として定義されています。

SSISは、限られた数の行をスキャンして知識に基づいて推測することにより、ソースファイルのデータ型を推測します。それを機能させるための試みが際限なく繰り返されたため、データ型OutputColumnWidthのメタデータを途中のどこかに50文字に固定し、パッケージ内部で切り捨てを引き起こしました。

データソースの[詳細設定]タブでメタデータを調べて、問題を解決します。

2
Raj

275列のテーブルをロードしようとしたときにも、このメッセージが表示されました。何をしてもメッセージが消えませんでした。一度に1列ずつ変更するのは非常に困難でした。 1つを修正し、別のエラーを取得します。さらに、一部は修正されていないようです。

次に、タブ区切りのソースファイルから「:」と「、」の文字をすべて削除しましたが、問題なく読み込まれました。

0
David Andrews

あなたもこれを試してみてください。

事前タブですべてのnvarchar列をDt_NTEXTとして選択し、データ変換で、すべてのNvarcharデータのエイリアス列としてDT_WSTR(Unicode_String)を選択します田畑。

それは私のために働いた:)。それを試してみてください

0
user3217761