Spring JDBC 限制查询长度

Spring JDBC Limit Query Length

我正在使用

执行自定义构建的 DML 语句
namedParameterJdbcTemplate.update(sql, valueMap);

调用,其中sql是根据地图中的值构建的。在这里,我的地图可能会变得非常大,因此 sql 也可能会变得很长。我知道在 Oracle 中,一个查询的长度没有固定的数字,并且有很多因素包括数据库配置可能会影响这个值,但我想将查询长度限制为一个固定的数字。

限制查询长度的最佳方法是什么? spring-batch API 在这里有用吗?

提前感谢您的指点。

我会选择以下方法之一:

  1. 临时 table - 批量插入数据到临时 table 然后使用 MERGE INTO 语句 table.

  2. 为您的行创建 SQL 类型并仅绑定一个参数。 (google 对于 OraData - 它有点棘手但它有效)

两者都将使您能够进行小型静态查询,从而避免查询过大(及其解析、污染库缓存等)的潜在问题。