【发布时间】:2020-03-27 19:22:49
【问题描述】:
我有这个查询,使用 Hibernate 4 和 DB2,运行原生查询:
select * from TABLE1 t where (:param1 is null or t.NAME = :param1)
这会抛出 null 在上下文中无效的异常(因为 SQL 变为 select * from TABLE1 t where (null is null or t.NAME = null))
所以我尝试了:
select * from TABLE1 t where (COALESCE(:param1,'!') = '!' or t.NAME = :param1)
当我传递值“JUSTIN”时会引发异常 -
"THE VALUE OF INPUT VARIABLE OR PARAMETER NUMBER IS INVALID OR TOO LARGE FOR THE TARGET COLUMN OR THE TARGET VALUE"
这似乎是因为 DB2 会根据“!”检查“:param1”的长度。
DB2 中有没有办法传递动态参数?
我开始讨厌 DB2....
【问题讨论】: