java - 当查询输入包含德语字符时,Oracle DB 不返回结果
问题描述
我今天在我的 Oracle DB 上遇到了一个问题。
我有一个已部署的应用程序,在一个用例中,会触发类似于以下内容的查询:
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 环境中将 Eclipse 中的代码作为 Java 应用程序运行,我会找到所需的结果。但是,部署在指向同一数据库的 Tomcat 上的相同代码返回空结果集。
但是,如果我更改查询以避免使用德语字符,则会获取结果,即
select * from t_my_table where UPPER(col_name) like UPPER('%ntema%');
将获取所需的结果。所以问题只出在这些字符上。
此外,当直接在 SQL 开发人员上运行查询时,它们总是在工作。
这里可能出了什么问题。老实说,我不知道要尝试什么。有人可以建议任何解决方案。
解决方案
推荐阅读
- oracle - dbstart 不接受 $ORACLE_HOME
- c# - 如何将数据获取到从服务获取的 ViewModel 列表,然后更新 View?
- javascript - 如何使用 Moment JS 查找本月剩余的工作日数
- angular - 如何从角度的外部链接中删除base-href?
- wordpress - .htaccess 指令在 wordpress 网站中被忽略
- mysql - 为什么条件哪里不对?
- python - 如何在具有特定模式的一个字符串上停止正则表达式的匹配?
- javascript - 如何通过在 devtools 中检查网络来验证下载的文件
- python - Pandas:如果时间戳格式相同,则比较价格(for循环)
- python - 如何找到不在列表中的非空项的索引?