修正プログラム: フラット ファイル ソースで複数文字の列区切り記号を使用すると、SSIS 2005 パッケージを実行しようとすると、0xC02020A1、0xC020902A、0xC0202092、0xC0047038 のエラーが同時に発生する場合がある

たとえば次のようなシナリオを考えてみます。

  • Business Intelligence Development Studio (BIDS) で SQL Server 2005 Integration Services (SSIS) パッケージを作成します。
  • フラット ファイル ソースを使用して、データ フロー タスクのテキスト ファイルからデータを読み取ります。
  • フラット ファイル ソースで複数文字の列区切り記号を使用します。 たとえば、複数文字の列区切り記号は、3 つのチルダ文字 (~~~) からなる文字列です。
  • テキスト ファイルには大量のデータが含まれています。 たとえば、テキスト ファイルに 20,000 を超えるレコードが含まれているとします。
  • SSIS パッケージを実行します。

このシナリオでは、SSIS パッケージが失敗する可能性があります。 さらに、次のエラー メッセージが表示されます。

注

  • エラー: Data Flow タスクでの0xC02020A1、フラット ファイル ソース [1]: データ変換に失敗しました。 列 "<column_name>" のデータ変換では、状態値 4 と状態テキスト "テキストが切り捨てられたか、1 つ以上の文字がターゲット コード ページに一致しませんでした。" が返されました。
  • エラー: Data Flow タスクでの0xC020902A、フラット ファイル ソース [1]: 切り捨てが発生したため、"出力列 "<column_name>" (199)" は失敗し、"出力列 "<column_name>" (199)" の切り捨て行のDispositionは切り捨ての失敗を指定しています。 指定したコンポーネントの指定したオブジェクトで切り捨てエラーが発生しました。
  • エラー: Data Flow タスクでの0xC0202092、フラット ファイル ソース [1]: データ行 <row_number> でファイル "<path_of_the_flat_file>" を処理中にエラーが発生しました。
  • エラー: 0xC0047038 at Data Flow Task、SSIS。パイプライン: SSIS エラー コード DTS_E_PRIMEOUTPUTFAILED。 コンポーネント "フラット ファイル ソース" (1) の PrimeOutput メソッドからエラー コード 0xC0202092 が返されました。 パイプライン エンジンが PrimeOutput() を呼び出したときに、コンポーネントがエラー コードを返しました。 エラー コードの意味はコンポーネントによって定義されていますが、エラーは致命的であり、パイプラインの実行が停止しました。 この前に、エラーの詳細情報が投稿されたエラー メッセージが表示される場合があります。

    

現象

この問題は、フラット ファイル パーサーの入力バッファーが複数文字の区切り記号を 2 つの部分に誤って分割するために発生します。

原因

Service Pack の情報

この問題を解決するには、SQL Server 2005 の最新の Service Pack を入手します。

詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

913089 SQL Server 2005 の最新の Service Pack を入手する方法

解決策

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

状態