SSIS パッケージ (BIDS 2008 で作成) があります。パッケージにはデータ フロー タスクがあります。データ フロー タスク内には、ADO NET ソースと Excel 宛先があります。
Oracle DB に接続し、クエリを実行してから、結果を別のサーバーの Excel ファイルにドロップしています。Oracle DB に接続するには、接続用のシステム DSN を作成する必要がありました。Excel接続の場合、「テーブルまたはビュー」ドロップダウンオプションを使用して、ADO NET接続でSQLクエリからの出力を取得するテーブル作成クエリを作成します。
ローカル ドライブに Excel ファイルをドロップすると、正常に動作します。しかし、最終的な目標は、このパッケージを別のサーバーにドロップすることです。そのため、Excel 接続の場所を別のサーバー (アクセスできるサーバー) に変更すると、機能しません。Excel タスクを開いてプレビューを表示すると、次のエラーが表示されます。
タイトル: Microsoft Visual Studio
データ フロー タスク [Excel の宛先 [16]] でのエラー: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80040E37。
データ フロー タスク [Excel 送信先 [16]] でのエラー: "Excel_Destination" の行セットを開くことができませんでした。オブジェクトがデータベースに存在することを確認してください。
追加情報:
HRESULT からの例外: 0xC02020E8 (Microsoft.SqlServer.DTSPipelineWrap)
ボタン:
わかった
この問題の解決策が見つかりません。これで、ADO NET 接続は引き続き機能し、ADO NET ソース タスクのクエリでプレビューを実行すると、目的のデータが取得されます。
Excel ファイルをドロップするサーバーに DSN 名を追加する必要がありますか? それとも、ファイルをローカル マシンにドロップしてから、そのファイルを別のサーバーに ftp する方がよいでしょうか?