2011-10-18 92 views
0

SSISパッケージを作成しました。私はここにデータフロータスクを持っています。そこには、データベースからいくつかのテーブルのレコードをロードするOLE DBデータソースがあります。テーブル名はプログラムによって割り当てられているため、異なる列がそのDataSourceから出力されることがあります。また、レコードを分割したいDataSource出力にConditional Splitを接続しました。私は条件分割に条件を設定したいと私はそのような何かをしたい:条件付き分割条件で変数から列名を渡す方法

@ [ユーザー:: someValueの]は、比較するためにいくつかの値を持つ変数ですが、[ユーザー:: ConditionColumnName]が変数である@
@[User::ConditionColumnName] >= @[User::SomeValue] 

DataSourceの出力からいくつかの列の名前を取得します。この値をプログラムで割り当てます。 どうすればいいですか?または、コンパイル時の列で未知のデータを分割する他の方法がありますか?

答えて

2

これは、行ベースの条件付き分割のようです。 (あなたが上で比較することができ、列を持つように)おそらく、あなたはあなたの選択リストの中にあなたがあなたの条件分割での比較することができ、行ごとに列MyConditionColumnNameを持っている方法

"SELECT '" + (DT_STR,50,1252)@[User::ConditionColumnName] + "' as MyConditionColumnName, .... FROM ... " 

のようなものを変数の値を追加することができます。

(この選択を変数に入れ、変数をsqlで実行すると、管理が簡単になる) - 実行する前に変数を評価するためにクエリを式として解析する必要があります。

+0

ありがとうございました。最後に、少し修正した第2の方法を選択しました。 Conditional Splitを削除して、クエリテキストで変数を作成しました。私はデータフロータスクの前にスクリプトタスクでプログラムでクエリを作成し、 "SQLコマンドから変数"データアクセスモードでDataSourceで使用します。 – mao