Проблемы с запросом в AS / 400 с предложением LIKE - PullRequest
0 голосов
/ 21 июля 2011

Мы используем Hibernate для подключения к AS / 400.У нас возникают проблемы с запросом в AS / 400 с предложением LIKE.

Отображается следующая ошибка:

java.sql.SQLException: [SQL0131] Операндыиз LIKE не совместим или недействителен

Мой запрос автоматически генерируется Hibernate:

select tab_parame0_.C1IMCD as C1_560_, tab_parame0_.C1NINB as C2_560_,
tab_parame0_.C1JXCD as C3_560_, tab_parame0_.C1HLTX as C4_560_, tab_parame0_.C1HMTX as C5_560_,
tab_parame0_.C1HDST as C6_560_, tab_parame0_.C1NGNB as C7_560_, tab_parame0_.C1NJNB as C8_560_,
tab_parame0_.C1NFNB as C9_560_, tab_parame0_.C1NHNB as C10_560_, tab_parame0_.C1HCST as C11_560_
from RYC1REP tab_parame0_
where lower(tab_parame0_.C1HLTX) like lower(?)
order by tab_parame0_.C1IMCD asc
fetch first 10 rows only

1 Ответ

3 голосов
/ 21 июля 2011

SQL0131 указывает на несоответствие типов.

Какой тип данных является tab_parame0_.C1HLTX?Какой тип данных является вашим параметром запроса?

Пожалуйста, включите исходный код HQL / JPQL-запроса для сравнения .

Возможно, вам придется настроить трассировку SQL, чтобы точно узнать, что получает AS / 400.

См. Как получить информацию о трассировке из моей Java-программы с помощью панели инструментов?


Я рекомендую изменить LIKE LOWER(:parameter) на LIKE :parameter в своем источникезапросите и используйте .toLowerCase() при установке параметра и посмотрите, как это работает.

...