スクリプトタスクでOracleクエリを記述し、それを文字列変数に割り当てました。これは私の質問です
string oracle_query = "SELECT bank_ID, Branch_ID, Trans_NUM, Trans_DT, convert(Varchar(25),quantity) AS quantity FROM OPENQUERY(orcale_server_name, 'SELECT * "
+ "FROM oracletable" +
" where bank_ID =''" + Dts.Variables["User::bank_ID"].Value.ToString() + "'' AND Trans_DT = ''" + Dts.Variables["User::Trans_DT"].Value.ToString() + "'' AND quantity = " + Dts.Variables["User::quantity"].Value.ToString() + " AND Branch_ID = ''" + Dts.Variables["User::Branch_ID"].Value.ToString() + "'' ')";
このクエリの結果は、パッケージで宣言した文字列variablに割り当てられています。
Dts.Variables["oraclequery"].Value = oracle_query; .
このクエリの出力は
bank_ID Branch_ID Trans_Num Trans_DT Quantity
12 13 12AS566 2012-01-01 4000
Trans_Num列に基づいて、もう1つのテーブルを更新する必要があります。
スクリプトタスクの代わりにoledbTranFormationを使用できますが、Oledb Sourceで実行パラメーターを渡している間、データは送信されません。
したがって、スクリプトタスクの結果はOracleQuery変数に割り当てられ、SQLタスクの実行でソース変数として渡され、結果セットは完全な結果セットとして渡されます。
このExecuteSQlTaskの結果セットは、ループコンテナごとに渡され、varibaleインデックス内でOracleQueryVaribaleを割り当てました。
しかし、まだデータが入力されていません