查询比较字符串在 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 中无效