我正在使用以下命令执行自定义构建的 DML 语句
namedParameterJdbcTemplate.update(sql, valueMap);
调用,其中sql
是根据映射中的值构建的。这里我的 map 可能会变得非常大,因此 sql 也可能会变得非常长。据我了解,在Oracle中,查询的长度没有固定的数字,并且有很多因素(包括数据库配置)可能会影响该值,但我想将查询长度限制为固定数字。
限制查询长度的最佳方法是什么? spring-batch API 在这里有用吗?
提前感谢您的指点。
最佳答案
我会选择以下方法之一:
临时表 - 将数据批量插入到临时表中,然后对该表使用 MERGE INTO 语句。
为您的行创建 SQL 类型并仅绑定(bind)该一个参数。 (谷歌搜索 OraData - 这有点棘手,但它有效)
两者都将使您能够进行小型静态查询,从而避免太大查询(及其解析、污染库缓存等)的潜在问题。
关于java - Spring JDBC 限制查询长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28052200/