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
我在处理 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