queryForRowSet 不会 return 在可选日期参数中产生空值
queryForRowSet doesn't return results with null in optional date parameter
我向几个 Oracle SQL/Code 添加了可选的日期参数,除了与 queryForRowSet
结合使用的特定 SQL
我的 SQL 可选日期:
SELECT * from I where I.MYDATE <= nvl(?, I.MYDATE)
代码为可选日期发送空值:
Object[] param= new Object[] {null};
SqlRowSet result = jdbcTemplate.queryForRowSet(QUERY, param);
如果我删除参数 SQL return 结果,但使用 null 它不会 return 结果
您需要提供有关 null 类型的信息:
Object[] param = { null };
int[] paramType = { java.sql.Types.DATE };
SqlRowSet result = jdbcTemplate.queryForRowSet(QUERY, param, paramType);
或者,当以这种方式明确指定参数类型时它应该可以工作(因为查询只有一个参数):
java.sql.Date[] param = { null };
SqlRowSet result = jdbcTemplate.queryForRowSet(QUERY, param);
我向几个 Oracle SQL/Code 添加了可选的日期参数,除了与 queryForRowSet
我的 SQL 可选日期:
SELECT * from I where I.MYDATE <= nvl(?, I.MYDATE)
代码为可选日期发送空值:
Object[] param= new Object[] {null};
SqlRowSet result = jdbcTemplate.queryForRowSet(QUERY, param);
如果我删除参数 SQL return 结果,但使用 null 它不会 return 结果
您需要提供有关 null 类型的信息:
Object[] param = { null };
int[] paramType = { java.sql.Types.DATE };
SqlRowSet result = jdbcTemplate.queryForRowSet(QUERY, param, paramType);
或者,当以这种方式明确指定参数类型时它应该可以工作(因为查询只有一个参数):
java.sql.Date[] param = { null };
SqlRowSet result = jdbcTemplate.queryForRowSet(QUERY, param);