このモデルケースでは、テーブル全体をまとめて全レコードをCSVファイルに出力するのではなく、特定の条件に一致するレコードだけを抽出してから転送します。
基本的な流れはモデルケース3「AccessのデータをCSVファイルに転送する」とほとんど同じです。異なるのは、転送元として「テーブル名」を指定するのではなく、レコードを抽出する「SQL文」を指定する点です。そこで、モデルケース3のパッケージをコピーして編集を加えるものとしてその手順を説明します。
- ソリューションエクスプローラ上で「Case03.dtsx」をコピーして貼り付け、「Case07.dtsx」という名前に変更します。
- タブを「データフロー」に切り替えます。
- 「OLE DBソース」コンポーネントをダブルクリックして「OLE DBソースエディタ」ダイアログを開きます。
- パッケージをコピーしてきたので、「データアクセスモード」の欄が「テーブルまたはビュー」になっています。この欄をクリックして、ドロップダウンリストから「SQL
コマンド」を選択し直します。
- すると画面下半分の表示内容が切り替わり、「SQLコマンドテキスト」という欄が表示されます。
- あとはこの「SQLコマンドテキスト」の欄に任意のSQL文を書き込んでいけばよいわけですが、ここではSQL ServerのビューのデザイナあるいはAccessのクエリデザインビューに似たグラフィカルな画面を使ってSQL文を作ってみます。それには[クエリの作成]ボタンをクリックします。
- 「クエリビルダ」ダイアログが表示されたら、まず[テーブルの追加]ボタンをクリックします。
- 「テーブルの追加」ダイアログでテーブルの一覧が表示されたら、SQL文で使いたいテーブル名を選択して[追加]ボタンをクリックします。
- テーブルを追加後、[閉じる]ボタンをクリックすると、ダイアログで指定されたテーブルとそのフィールド一覧が「クエリビルダ」上に配置されています。
- 次に、任意のフィールド名にチェックマークを付けて、出力するフィールドを選択します。
- ここでは別のパッケージをコピーしているため、フィールドの選択がそのときと異なっていると、「データ変換」や「フラットファイル変換先」コンポーネントに警告メッセージが表示されることがあります。その場合は適宜それぞれのコンポーネントで対象列の再設定を行います。
- さらに、必要に応じて、フィルタ(抽出条件)や並べ替えなどの条件を指定してきます。
- ここでは一般的なSQL文の構成を指定しますので、複合条件のフィルタや並べ替えの他、演算や別名定義なども設定できます。
- 画面上部の[実行]ボタンをクリックすることで、実際に抽出されたデータを確認することもできます。
- すべての設定が完了したら、自動生成されたSQL文を確認して[OK]ボタンをクリックします。
- 「クエリビルダ」で組み立てられたSQL文が「OLE DBソースエディタ」上の「SQLコマンドテキスト」の欄に表示されます。
- SQLコマンドテキスト上で「SELECT」の対象列から除外してもよいのですが、ここでは「列」の画面で「ID」列のチェックを外してソースからそのフィールドを除外します。
- 最後に[OK]ボタンをクリックしてOLE DBソースの設定を確定します。
- パッケージを実行します。
出力されたCSVファイルを確認すると、指定された条件に一致するレコードだけが出力されています。
|