查询输入包含德语字符时,Oracle DB不返回结果

时间:2019-01-15 12:37:21

标签: java sql oracle hibernate

我今天在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();

现在奇怪的是,如果我在Spring Boot环境中以Java应用程序的形式从Eclipse运行此代码,则会找到所需的结果。但是,部署在Tomcat上的指向相同数据库的相同代码将返回空结果集。

但是,如果我更改查询以避免德语字符(即

),则会提取结果
select * from t_my_table where UPPER(col_name) like UPPER('%ntema%');

将获取所需的结果。因此,问题仅在于此类字符。

另外,当直接在SQL开发人员上运行查询时,它们始终可以正常工作。

这里可能出了什么问题。老实说,我没有任何尝试的线索。有人可以提出任何解决方案吗?

0 个答案:

没有答案