テーブル入力を使用し、ステップからデータを挿入して置き換える場合はどうなりますか?SQLで。
例えば、
select * from a where b in (?)
。
mysqlログから、SQLはselect * from a where b in ('0,1,2,3')
'なしで実行するにはどうすればよいですか?
ありがとう
私が見る3つの可能なアプローチがあります。オプション「C」が一番好きだと思います。
A) IN 句に常に 4 つの値しかないことがわかっている場合は、ジョブ変数に 4 つの値を格納し、Get Variables ステップでそれらを 1 つの行に読み取り、その行をデータベース ルックアップに流し込むことでそれを行うことができます。ステップの SQL は次のようになります。
select * from a where b in (?, ?, ?, ?)
単一の着信行の値を置き換えます。
B) 可変数の値がある場合、値のリストを行に正規化することを検討します。おそらく、[フィールドを行に分割] ステップを使用し、[定数を追加] を使用して各行に「見つかった」値を追加し、それらをストリーム ルックアップ。次に、ストリーム ルックアップの後、「見つかった」値が null であるすべての行をダミー ステップにフローします。
C) Job で値リストを作成し、それを変数として渡します。テーブル入力ステップで、次のようなステートメントを使用します。
select * from a where b in (${varname})
「変数スクリプトの置換」にチェックを入れます。変数は、実行前に SQL に展開されます。