БД Oracle не возвращает результат, если входные данные запроса содержат немецкие символы - PullRequest
0 голосов
/ 15 января 2019

Сегодня я столкнулся с проблемой в моей базе данных Oracle.

У меня развернуто приложение, и в одном из вариантов использования запускается запрос, подобный приведенному ниже:

select * from t_my_table where col_name like '%Häntema%';

Чтобы выборка игнорировала регистры, запрос кодируется как:

select * from t_my_table where UPPER(col_name) like UPPER('%Häntema%');

Строка данных не является жестко закодированной, скорее, для параметров Hibernate установлено значение toUpperCase ();

Странная часть: если я запускаю этот код из Eclipse как приложение Java в среде Spring Boot, я нахожу требуемые результаты. Однако тот же код, развернутый на Tomcat, указывающий на ту же базу данных, возвращает пустой набор результатов.

Однако результаты извлекаются, если я изменяю запрос, чтобы избежать символов немецкого языка, т.е.

select * from t_my_table where UPPER(col_name) like UPPER('%ntema%');

принесет требуемые результаты. Так что проблема только с такими персонажами.

Кроме того, при выполнении запроса непосредственно на SQL-разработчике они всегда работают.

Что может быть неправильным здесь. Я, честно говоря, понятия не имею, чтобы попробовать что-то. Может кто-нибудь, пожалуйста, предложить какие-либо решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...