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);