在处理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资源,但没有任何内容与我手头的问题相关。
感谢您的帮助。
答案 0 :(得分:1)
尝试使用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