我正在使用NamedParameterJdbcTemplate batchUpdate运行以下合并查询。
batchUpdate(String sql,SqlParameterSource [] batchArgs)适用于具有1个项目的batchArgs,不适用于多个项目。下面是查询,我重命名了表列名。
NamedParameterJdbcTemplate.batchUpdate在单独运行每个数组项时运行,或者以NamedParameterJdbcTemplate运行.update()
Sql Query:
MERGE INTO tableName C1 USING (VALUES (:f1)) AS C2(Field1)
ON (C1.CMP = C2.CO_C)
WHEN MATCHED THEN
UPDATE SET Field2 = :date1, Field3 = :time1, Field4 =:userId
WHEN NOT MATCHED THEN
INSERT (Field5, Field1, Field4, Field2, Field3) VALUES (:offCC, :f1,:userId, :date1, :time1)
[错误] SQL异常: [错误]消息:[jcc] [t4] [102] [10040] [4.22.29]批次失败。批次已提交,但批次的单个成员至少发生了一个例外。使用getNextException()来检索特定批处理元素的异常。 ERRORCODE = -4229,SQLSTATE = null
[错误] SQLSTATE:null
[错误]错误代码:-4229
[错误] SQL异常:
[错误]消息:VARIABLE未定义或无法使用。 SQLCODE = -312,SQLSTATE = 42618,DRIVER = 4.22.29 [错误] SQLSTATE:42618
[错误]错误代码:-312
[错误] SQL异常:
[错误]消息:批处理元素#1出错:VARIABLE未定义或无法使用 [错误] SQLSTATE:42618 [错误]错误代码:-312