2011-07-14 16 views
3

フラットファイルを受け取り、新しい列を追加して新しいフラットファイルを生成する汎用SSISパッケージを作成しています。フラットファイルの宛先の動的列

問題は、新しい列の数がストアドプロシージャのXMLパラメータによって異なることです。 BCPを呼び出すために "Execute Process Task"を使用しようとしましたが、XMLパラメータがコマンドラインには長すぎます。

ウェブで検索すると、実行時にSSISパッケージを動的に変更できないことがわかりました。スクリプトタスクを使用して出力を生成する必要があります。私はその道を歩み始めました。そして、スクリプトコンポーネントに、列がどのように受け取られるのか、それはまさに私が設計時にわからないことを知っておく必要があることがわかりました。

CozyRocからサードパーティのSSIS拡張機能が見つかりましたが、拡張機能を使用しないでこれを実行したいと思います。

誰もこのようなことをしましたか?

ありがとうございます!

答えて

1

実行時に列の数が不明な場合は、何かを動的に実行する必要があります。これは、スクリプトタスクおよび/またはスクリプトコンポーネントを使用することを意味します。

ワークフローは次のようになります。

  1. 変数パッケージの行数が可変の
  2. に基づいてフラットファイルに列を追加行
  3. 保存の数を取得するためにXMLを解析します

これはスクリプトタスクを使用してすべて可能ですが、データフローが含まれていない場合は、外部のPerlスクリプトまたはC#プログラムですべてを実行し、あなたのパッケージ。

+0

私が抱えている問題は、手順3です。フラットファイルに列を動的に追加するにはどうすればよいですか? –

+0

わかりません:空の列やデータを追加していますか?データがある場合、どこから来ていますか?私は今SSISを忘れて、あなたが実装する必要があるロジックを解き明かします。スクリプトタスクまたは外部プログラムを使用して実装することができます。 – Pondlife

+0

こんにちは@Pondlife、これはシナリオです:私は返すことができるストアドプロシージャを持って、3つの列X、Y、Zを言うことができます。時々クライアントはXだけを必要とし、別のクライアントはXとYと他のクライアントXとZが必要です。スクリプトタスクを使用して、SPパラメータに基づいて入力列のみを渡すことができると思いますか? ありがとうございます。 –

関連する問題