テーブルを SQL SERVER 2012 から Excel 2007 ブックにエクスポートしようとしています。
OLE DB Source -> Excel Destination からの単純なタスクは完全に機能します。
[POD Assignment] というフィールドがあり、[POD Assignment] が「UNKNOWN」の場合はワークブックの 1 つのシートにエクスポートし、そうでない場合は別のシートにエクスポートします。
OLE DB ソースを条件付き分割にリンクします。
条件が「[POD Assignment] == "UNKNOWN"」である「Unknowns」という名前の出力があります。出力「Unknowns」を Excel の宛先にリンクします。
この時点で、パッケージを実行すると、すべてが正常に機能します。行はワークブックに正しくエクスポートされ、カウントも正しくなりました。ここに見られるように:
[] http://imgur.com/iKcJCfY,rHnW8ax#0
ここで、条件付き分割を、出力が条件付き分割のデフォルト出力である 2 番目の Excel 宛先に接続します。Excel の 2 番目の宛先は、最初の宛先とまったく同じ Excel 接続を使用します。そして、すべてのデータは同じワークブックの別のシートにエクスポートされるはずです。
これを実行すると失敗します。ここに見られるように:
[]: http://imgur.com/iKcJCfY,rHnW8ax#1
タスクはエラーで途中で中止されます。
次のエラー コードが表示されます。
[Excel 宛先 1 [101]] エラー: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80004005。OLE DB レコードが利用可能です。ソース: "Microsoft Office Access データベース エンジン" Hresult: 0x80004005 説明: "名前付き範囲を拡張できません。".
[Excel 宛先 1 [101]] エラー: SSIS エラー コード DTS_E_INDUCEDTRANSFORMFAILUREONERROR。エラー コード 0xC020907B が発生したため、"Excel Destination 1.Inputs[Excel Destination Input]" が失敗し、"Excel Destination 1.Inputs[Excel Destination Input]" のエラー行の処理がエラー時の失敗を示しています。指定されたコンポーネントの指定されたオブジェクトでエラーが発生しました。これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。
[SSIS.Pipeline] エラー: SSIS エラー コード DTS_E_PROCESSINPUTFAILED。入力「Excel Destination Input」(112) の処理中に、コンポーネント「Excel Destination 1」(101) の ProcessInput メソッドがエラー コード 0xC0209029 で失敗しました。識別されたコンポーネントが ProcessInput メソッドからエラーを返しました。エラーはコンポーネントに固有のものですが、エラーは致命的であり、データ フロー タスクの実行が停止します。これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。[OLE DB ソース [188]] エラー: バッファーの行セットの末尾を設定すると、エラー コード 0xC0047020 で失敗しました。[SSIS.Pipeline] エラー: SSIS エラー コード DTS_E_PRIMEOUTPUTFAILED。OLE DB ソースの PrimeOutput メソッドがエラー コード 0xC0209017 を返しました。パイプライン エンジンが PrimeOutput() を呼び出したときに、コンポーネントがエラー コードを返しました。エラー コードの意味はコンポーネントによって定義されますが、エラーは致命的であり、パイプラインは実行を停止しました。これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。
どんな助けでも大歓迎です。これは私を夢中にさせています。条件付き分割に 1 つの宛先を使用すると完全に機能する理由がわかりませんが、2 番目の宛先を追加するとすべてが失敗します。