2

この質問のバリエーションをあちこちで見てきましたが、これを機能させることができないようです。一部のテキスト フィールドにキャリッジ リターンが含まれるフラット ファイルからデータを一括挿入できるようにする必要があります。

キャレット ^ 記号で区切られるようにフラット ファイルを設定しました。行の区切り記号は縦のパイプで、列の区切り記号はタブです。テキスト フィールドにキャリッジ リターンが含まれているのにインポートが失敗するのはなぜですか?

行/列の区切り文字が CR/LF でない場合、区切りテキスト フィールドに CR/LF (または単一の CR または単一の LF) を含めることができるという印象を受けました。インポートを機能させるにはどうすればよいですか? ありがとう。

PS - 私がテストした方法は、テーブルを取得し、上記のように区切り文字を設定してフラット ファイルにエクスポートし、テキスト フィールドに改行を挿入してから、SQL Server インポート エクスポート ウィザードを使用してデータを再度インポートすることです。両方向に。これが私が見るエラーメッセージです:

エラー 0xc02020a1: データ フロー タスク 1: データ変換に失敗しました。列 "Column 23" のデータ変換で、ステータス値 4 とステータス テキスト "テキストが切り捨てられたか、1 つまたは複数の文字がターゲット コード ページに一致しませんでした。" が返されました。

エラー 0xc020902a: データ フロー タスク 1: "ソース - IVREJECTHD_txt.Outputs[フラット ファイル ソース出力].Columns[列 23]" は、切り捨てが発生したため失敗し、"ソース - IVREJECTHD_txt.Outputs[フラット ファイル ソース出力].Columns[Column 23]" は切り捨ての失敗を指定します。指定されたコンポーネントの指定されたオブジェクトで切り捨てエラーが発生しました。

エラー 0xc0202092: データ フロー タスク 1: データ行 2 のファイル "C:\Users\bbauer\Desktop\IVREJECTHD.txt" の処理中にエラーが発生しました。

エラー 0xc0047038: データ フロー タスク 1: SSIS エラー コード DTS_E_PRIMEOUTPUTFAILED. ソースの PrimeOutput メソッド - IVREJECTHD_txt がエラー コード 0xC0202092 を返しました。パイプライン エンジンが PrimeOutput() を呼び出したときに、コンポーネントがエラー コードを返しました。エラー コードの意味はコンポーネントによって定義されますが、エラーは致命的であり、パイプラインは実行を停止しました。これより前に、障害に関する詳細情報を含むエラー メッセージが投稿される場合があります。

4

1 に答える 1

0

一括挿入では、テキスト フィールドに埋め込まれた CR/LF ペアをインポートできます。2 行目の指定された列 (23) で、ソースの生データで何か他のことが起こっています。「テキストが切り捨てられました」というエラーには、いくつかの原因があります。それらのいくつかは、このスレッドで触れられています。ウィザードを使用しているユーザーを特に悩ませる一般的な原因の 1 つは、対象の列幅を指定していないことです。ターゲット テーブルが正しく設定されているかどうかは問題ではありません。インポートで指定された列幅が十分に大きくない場合、このエラーが発生します。

T-SQL とフォーマット ファイルを使用して一括挿入を実行することを検討してください。インポート プロセスを繰り返しテストして改良する必要がある場合は、変更を加えて再実行する方がはるかに簡単です。

また、この回答に記載されているように、埋め込まれた CR/LF は、ツール (Management Studio など) に表示されていなくても表示されます。

于 2013-10-18T16:56:17.460 に答える