2

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 する方がよいでしょうか?

4

1 に答える 1

2

ローカル マシンのローカル ドライブの Excel ファイルにデータを入力するか、マップされたドライブを介してサーバーにリモート ドライブにデータを入力するか。SSISパッケージがそのファイルにデータを書き込むには、「Excel_Destination」という名前の参照シートを含むExcelファイルがその場所に存在する必要があります。

ファイルをローカルドライブに書き込み、このファイルをコピーするftpまたはバッチスクリプトを介して配布するアプローチは、あなたの場合は問題ないようです。ローカル ドライブに Excel ファイルを書き込む 2 つのパッケージと、スケジュール可能なローカル ドライブとの間でファイルをプッシュまたはプルする別のパッケージを書き込むことができます。

于 2013-08-14T13:55:04.460 に答える