如何在不获取ORA-01460的情况下将大字符串设置为参数:未实现或不合理的转换错误?

问题描述 投票:0回答:1

在使用namedParameterJdbcTemplate]的春季引导中(Oracle数据库版本12和odbc8驱动程序12.2)

我执行一个绑定参数大于4000个字符的SELECT

查询时出现以下错误,而更新查询工作正常。

ORA-01460:请求未实现或不合理的转换

我正在尝试执行的单元测试;

@Test
public void testSqlSelectQueryLargeStringParameter() {
    MapSqlParameterSource params = new MapSqlParameterSource();
    params.addValue("param", theLargeStr);

    // @formatter:off
    String sql =
        "SELECT NULL id, NULL text FROM DUAL WHERE 'X' != :param ";
    // @formatter:on

    namedParameterJdbcTemplate.queryForRowSet(sql, params);
}

是否可以通过MapSqlParameterSource?

设置此[[大参数[在使用namedParameterJdbcTemplate的春季引导中(Oracle db版本12和odbc8驱动程序12.2)在执行绑定到参数大于4000的SELECT查询时,出现以下错误:
sql oracle spring-boot jdbc
1个回答
0
投票
This comment points out JDBC查询中的ORA-01460与“ ORA-01704:字符串文字太长”相同。 (字符串文字的长度不能超过4000个字符。)也许是try this solution
© www.soinside.com 2019 - 2024. All rights reserved.