単一の実行 SQL タスクを使用して、2 つの異なるクエリによって返された値を 2 つの異なる変数に格納する必要がある状況があります。複数の値を格納できる単一行の結果セット タイプについては知っていますが、単一行で返される必要があります。誰でもこれを手伝ってもらえますか?
1 に答える
2 つの異なるクエリの結果を 2 つの列で 1 つの行に結合する場合は、両方で定義されているフィールド タイプが同じであり、出力変数のタイプ定義と一致していることを確認する必要があります。つまり、次の例に示すように、Row1 は変数 test1 と同じ型である必要があり、Row2 は変数 test2 と同じ型である必要があります。
うまくいくと思われるシナリオを使用してテストを実行しました。
1) ネストされた 2 つのクエリの結果を組み合わせた次のクエリを設定します。
SELECT
(SELECT Row2 FROM Tests WHERE TestID = 4) AS Row1
,(SELECT Row2 FROM Tests WHERE TestID = 5) AS Row2
2) 返される結果はどちらも varchar (または文字列) 型であるため、SSIS パッケージに、データ型が "String" の変数 (test1) と 2 つ目の変数 (test2) を設定しました。
3) SQLStatement の上記の SQL ステートメントを定義する SQL 実行タスクを作成し、ResultSet を「単一行」に設定します。
4) 結果セットには、2 つの新しい行を追加しました。1 つ目は結果名 = 0 で変数名は "User::test1" で、2 つ目は結果名 = 1 で変数名は "User::test2" です。ここでの考え方は、クエリからの Row1 の結果が test1 に送られ、Row2 が test2 に送られるということです。
タスクを実行し、成功しました。
これが役立つかどうか教えてください。
ありがとう。