0
次の文は、UPSERT操作を実行するためにDB2で使用されます。jdbcプリペアドステートメントを使用して可変数のパラメータを渡す方法はありますか?
MERGE INTO mytable AS mt USING (
SELECT * FROM TABLE (
VALUES
(?, ?),
(?, ?),
—-^repeated many times, one for each row to be upserted
)
) AS vt(id, val) ON (mt.id = vt.id)
WHEN MATCHED THEN
UPDATE SET val = vt.val
WHEN NOT MATCHED THEN
INSERT (id, val) VALUES (vt.id, vt.val)
;
私はこの文を呼び出すたびに、私は異なる数の行を挿入する必要があります。準備された声明を使ってこの電話をすることは可能ですか?どのように見えるだろうか?
参考:https://stackoverflow.com/a/23784606/1033422
?パラメータマーカは実行ごとに異なりますので、パラメータマーカの数が変更された場合は再準備する必要があります。非常に多くの行がある場合は特にDGTTを使用します。はい、より多くのステートメントが、dgttを動的に索引付けできるため、拡張が容易です。 – mao
ありがとう@mao。これを回答に変換したい場合は、喜んでそれを受け入れます。 –