CSV ファイル (カンマ区切り) を SQL Server 2012 (vs 11.0.2100.60) テーブルにアップロードしようとしています。テストのためにデータベースにデータを取得したいだけなので、テスト目的ですべての列が等しいテーブルを作成しました。nvarchar(MAX)
残念ながら、次のエラーが発生し続けます。
メッセージ エラー 0xc02020a1: データ フロー タスク 1: データ変換に失敗しました。列「列 2」のデータ変換で、ステータス
値 4 とステータス テキスト「テキストが切り捨てられたか、ターゲット コード ページで一致する文字が 1 つ以上ありませんでした。」が返されました。(SQL Server インポートおよびエクスポート ウィザード)エラー 0xc020902a: データ フロー タスク 1: "ソース - Book2_txt.Outputs[フラット ファイル ソース出力].Columns[列 2]" は、切り捨てが発生したため失敗し、"ソース - Book2_txt.Outputs[フラット ファイル ソース出力].Columns[Column 2]" は切り捨ての失敗を指定します。指定されたコンポーネントの指定されたオブジェクトで切り捨てエラーが発生しました。(SQL Server インポートおよびエクスポート ウィザード)
エラー 0xc0202092: データ フロー タスク 1: データ行 3 のファイル "C:\Users\shalinp\Desktop\MISO\junk\Book2.txt" の処理中にエラーが発生しました。 (SQL Server インポートおよびエクスポート ウィザード)
エラー 0xc0047038: データ フロー タスク 1: SSIS エラー コード DTS_E_PRIMEOUTPUTFAILED. ソースの PrimeOutput メソッド - Book2_txt がエラー コード 0xC0202092 を返しました。パイプライン エンジンが PrimeOutput() を呼び出したときに、コンポーネントがエラー コードを返しました。エラー コードの意味はコンポーネントによって定義されますが、エラーは致命的であり、パイプラインは実行を停止しました。これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。(SQL Server インポートおよびエクスポート ウィザード)
私のファイルは大きいですが、テストするデータの最初の 4 行のみを含む新しいファイルを作成しました。残念ながら、stackoverflow ではファイルをアップロードできないため、提供できません (間違っていたら訂正してください)。
しかし、ここにそれのカットアンドペーストがあります:
1/1/2010,ARNLD HAZELTON BASE,HAZLTON HAZLTARNOL34_1 1 (LN/ALTW/ALTW),ACTUAL,1,($23.18)
1/1/2010,MANISTIQ_T1_T1_XF,MANISTIQ T1 T1 (XF/WEC/*),,1,($12.47)
1/1/2010,ONT-NYIS BASE,BECK2 BECK2GPACKAR_1 A (LN/ONT/NYISO); BECK2 BECK_BNIAG_3_1 A (LN/ONT/NYISO); BECK2 BECK_ANIAG_3_1 A (LN/ONT/NYISO); STLAWRE1 SAUND_MOSES1_1 A (LN/ONT/NYISO); BECK2 BECK2GNIAG_3_1 A (LN/ONT/NYISO); STLAWRE1 SAUND_MOSES__1 A (LN/ONT/NYISO),ACTUAL,1,($6.05)
1/1/2010,PADDCK_TWNLINE FLO PADDCK_BLACKHWK,TOWNELIN TLR_PAD 1 (LN/ALTE/ALTE),PADDOCK-BLACKHAWK 138 (X-53),1,($3.06)
長いテキスト文字列を持つ行 3、列 3 でエラーが発生していると思われます。
BECK2 BECK2GPACKAR_1 A (LN/ONT/NYISO); BECK2 BECK_BNIAG_3_1 A (LN/ONT/NYISO); BECK2 BECK_ANIAG_3_1 A (LN/ONT/NYISO); STLAWRE1 SAUND_MOSES1_1 A (LN/ONT/NYISO); BECK2 BECK2GNIAG_3_1 A (LN/ONT/NYISO); STLAWRE1 SAUND_MOSES__1 A (LN/ONT/NYISO)
そうは言っても、これが type を使用している理由ですnvarchar(max)
。いずれにせよ、私は助けに感謝します。
ありがとうございました。