查询比较字符串在 Oracle 中有效,但在 Java 中无效

Posted

技术标签:

【中文标题】查询比较字符串在 Oracle 中有效,但在 Java 中无效【英文标题】:Query comparing strings works in Oracle, but not in Java 【发布时间】:2012-01-05 21:15:13 【问题描述】:

我正在处理一个非常简单的查询:

SELECT id FROM infotable WHERE email = 'joe.blow@smiths.com'

此查询在 Oracle 10g 中通过 Golden32 前端返回结果。

当我通过 Java/JDBC 尝试相同的查询时,我什么也得不到。

我尝试了 PreparedStatement 和 Statement,没有任何乐趣。我尝试将'joe.blow@smiths.com' 和电子邮件单独放在upper() 和lower() 的各种组合中,也可以放在一起。我还从 infotable 中选择了所有电子邮件值,在输出旁边放置字符串标记以消除数据库中的空白作为问题(我还将电子邮件字段包装在 rtrim() 和 ltrim() 中)。

你有什么想法吗?

【问题讨论】:

向我们展示 JDBC 代码。 SELECT id FROM infotable 也返回任何东西吗? 示例代码会有所帮助。您确定您通过 Golden 查询工具在 Java 端以同一用户身份连接吗? Tomasz Nurkiewicz,我没有包含 JDBC,因为它太基础了。 GriffeyDog,原来有两个不同的密码,这两个都可以,但不一样。我现在有正确的密码,我正在通过 JDBC 获得结果。如果你想发表你的评论作为答案,我会给你一个绿色的复选标记。 完成。很高兴您发现了问题。 【参考方案1】:

您确定在 Java 端使用 Golden 查询工具连接的用户是同一用户吗?

【讨论】:

以上是关于查询比较字符串在 Oracle 中有效,但在 Java 中无效的主要内容,如果未能解决你的问题,请参考以下文章

为啥此查询字符串在 Access 中有效,但在 C# 中无效?

为啥二进制中的 Sql Server 图像在字符串查询中导致问题但在参数化查询中有效

Python MySQLdb 转义字符:查询在 MySQL 中有效,但在 python MySQLdb 中无效

SQL 查询字符串在 SQL Server Management Studio 中有效,但在带有 SQLCommand.ExecuteReader 的 VB.net 中无效

在 Oracle 中解释计划 - 如何检测最有效的查询?

SQL Merge 语句在 Oracle 11g 中有效,但在 9i 中无效