如何使用jdbc准备的语句传递数量可变的参数?

如何使用jdbc准备的语句传递数量可变的参数?,jdbc,db2,prepared-statement,Jdbc,Db2,Prepared Statement,以下语句在db2上用于执行UPSERT操作: 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)

以下语句在db2上用于执行UPSERT操作:

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)
;
每次调用此语句时,都会插入不同数量的行。是否可以使用准备好的语句进行此调用?那会是什么样子


参考:

如果?每次运行参数标记都不同,如果参数标记的数量发生变化,则必须重新准备。我将使用声明的全局临时表DGTT,特别是在有大量行的情况下。是的,有更多的语句,但更易于扩展,因为您可以动态索引DGTT


有关DB2中临时表的更多信息,请参阅。

?每次运行参数标记都不同,如果参数标记的数量发生变化,则必须重新准备。我会使用DGTT,尤其是当有大量行时。是的,更多的语句,但是更容易扩展,因为可以动态索引dgtt。谢谢@mao。如果你想把这个转化为一个答案,我很乐意接受。