DB2 SQL - неразрешенная ошибка нетипизированного выражения с PreparedStatement - PullRequest
0 голосов
/ 22 мая 2018

У меня странная ошибка при работе с 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 относительно сообщения об ошибке, но ничего не касается моей рассматриваемой проблемы.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 22 мая 2018

Попробуйте использовать 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
...