我正在调用一个 SQL 存储过程SimpleJdbcCall
,它运行良好 - 除了性能太慢。
为了改善这一点,我尝试对调用进行批处理,以便它们一次性执行 - 我找不到这样做的方法。
SimpleJdbcCall
似乎不能批处理。
所以我发现 jdbcTemplate.batchUpdate(
我将参数构建为List<Object[]>
格式或使用BatchPreparedStatementSetter
任何一种方式我看到相同的错误:
Incorrect syntax near '@p0'.
这是我尝试批处理的 SQL 语句:
call PortfolioCacheStore ?,?,?,?,?,?,?,?,?,?,?,?,?
我已经尝试过同时使用 call 和 exec 以及带和不带括号:
call PortfolioCacheStore(?,?,?,?,?,?,?,?,?,?,?,?,?)
ETC
无论哪种方式,我都会收到上述错误或非常相似的错误。
如果我接受它正在构建的查询并在 SQL 客户端中运行它,它就可以工作:
exec PortfolioCacheStore 'G','LL','U','B',0,'2021-09-03','2022-01-19',5,'D','FO.tgz',0,'e-local','Arg'
请问有谁知道我在做什么和/或如何将一系列存储过程调用从 JDBC 批处理到 Sybase?