0
下面的语句是用来在DB2上执行操作UPSERT:如何使用jdbc prepared语句传递可变数量的参数?
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。如果您想将其转换为答案,我很乐意接受。 –