DB2 SQL - PreparedStatement 未解决的未类型化表达式错误

DB2 SQL - Unresolved Untyped Expression Error with PreparedStatement

我在处理 PreparedStatement 时遇到奇怪的错误。

这是在 Squirrel 中有效的查询 SQL:

SELECT CUSTOMER, MAX(TRANSACTION_COUNT) as UNIT_COUNT, '2018-05-20' as EVENT_DATE, 'XYZ File Transfer' as TYPE, 'Financial Report' as EVENT 
FROM  REPORT_TABLE RT  
WHERE upper(REPORT_STATUS) = 'READY' and TRUNC(CREATED_TS) = '2018-05-20' and TRANSACTION_COUNT > 0 
GROUP BY CUSTOMER

这是我的 PreparedStatement:

SELECT CUSTOMER, MAX(TRANSACTION_COUNT) as UNIT_COUNT, :date as EVENT_DATE, 'XYZ File Transfer' as TYPE, 'Financial Report' as EVENT 
FROM  REPORT_TABLE RT  
WHERE upper(REPORT_STATUS) = 'READY' and TRUNC(CREATED_TS) = :date and TRANSACTION_COUNT > 0 
GROUP BY CUSTOMER

正在设置参数:

params.addValue("date", "2018-05-20");

当我 运行 它作为 PreparedStatement 时,我收到此错误消息:

nested exception is com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-418, S    QLSTATE=42610, SQLERRMC=unresolved untyped expression, DRIVER=4.19.66

我尝试查看一些有关错误消息的 IBM 资源,但与我手头的问题无关。

感谢所有帮助。

尝试使用 CAST 或 DATE() 来告诉编译器预期的类型,例如:

SELECT CUSTOMER, MAX(TRANSACTION_COUNT) as UNIT_COUNT, DATE(:date) as EVENT_DATE, 'XYZ File Transfer' as TYPE, 'Financial Report' as EVENT 
FROM  REPORT_TABLE RT  
WHERE upper(REPORT_STATUS) = 'READY' and TRUNC(CREATED_TS) = CAST(:date as DATE) and TRANSACTION_COUNT > 0 
GROUP BY CUSTOMER