4

チーム、

私の目的は、SSIS を使用して Excel から SQL テーブルにデータをロードすることです。ただし、Excel は非常に動的です。つまり、列数が異なるか、既存の列の順序が変わる可能性があります。しかし、宛先テーブルは同じになります...

だから私は次のようないくつかのオプションを考えていました:
1) 「Excel ソース」で SQL コマンドを使用する最初のいくつかのレコードで)。したがって、ヘッダーに基づくクエリはここでは機能しません。

2)私の頭にあるもう1つのオプションは、スクリプトタスクであり、私が知っている列に基づいてExcelを読み取るC#コードを記述します。したがって、この場合、新しい列の順序と挿入/削除は問題になりません。

スクリプト タスクが利用可能な唯一のオプションかどうか教えてください。SSISで同じことを達成する他の簡単な方法はありますか? また、可能であれば、同じ参照を提案してください。

ありがとう、ジャスティン・サミュエル。

4

2 に答える 2

2

プロセスを自動化する必要がある場合は、間違いなくスクリプト コンポーネントと OleDbDataAdapter の組み合わせを使用します (Excel は独自の形式であるため、ストリームリーダーは使用できません)。そうでない場合は、インポート ウィザードを使用します。

接続マネージャー ベースのソリューションを使用しようとすると、ファイル レイアウトが変更されると失敗します。スクリプト コンポーネントと OleDbDataAdapter の組み合わせを使用すると、ロジックを追加してフィールドを解釈し、ロード前にレコード レイアウトを標準化できます。また、エラー バッファーを作成し、Try / Catch を使用してエラー値を適切にプッシュすることもできます。

スクリプト コンポーネントをデータ フロー タスクのソースとして使用する方法については、次のリンクを参照してください。

http://microsoft-ssis.blogspot.com/2011/02/script-component-as-source-2.html http://beyondrelational.com/modules/2/blogs/106/posts/11126/ssis-script -component-split-single-row-to-multiple-rows.aspx

于 2012-12-03T14:35:12.503 に答える
1

これは、SQLServerで使用可能な「データのインポートとエクスポート」ツールを使用して簡単に実行できます。

手順1: Excelをソースとして指定し、SQLServerDBを宛先として指定します。

ステップ2:必要なマッピングを提供します。

ステップ:3最後の画面で、「SSISパッケージとして保存」とファイルシステムを指定できます。関連するdtsxSSISパッケージが作成されます。

SQL Serverのインポートおよびエクスポートウィザードがパッケージを作成してデータをコピーした後、SSISデザイナを使用して、タスク、変換、およびイベント駆動型ロジックを追加することにより、保存されたパッケージを開いて変更できます。

(ヘッダーに基づいて機能するため、順序は重要ではありません。特定の列が欠落している場合は、自動的にNULLを取る必要があります)

参照: http: //msdn.microsoft.com/en-us/library/ms140052.aspx

于 2012-12-03T12:37:01.717 に答える