【问题标题】:Ignore case in SQL query with JDBC [duplicate]使用 JDBC 忽略 SQL 查询中的大小写 [重复]
【发布时间】:2016-08-31 11:25:20
【问题描述】:

Oracle SQL 中如何忽略大小写和匹配字符串?例如,在 Oracle 数据库中,如果字符串存储为“Akujk Ctr12-i/E”,如果用户输入字符串为“akujk ctrl2-i/e”,如何在 JDBC 中编写查询以使其仍然有效忽略案例?

【问题讨论】:

  • @a_horse_with_no_name - 问题文本中提到了 Oracle。我添加了一个标签。

标签: sql oracle jdbc


【解决方案1】:

在 Java 中,因此接受用户输入并将其设为大写。

userString.toUpperCase()

在SQL中,使用上层函数

upper(a_column) = ?

这可能不允许数据库使用索引,因此您可能需要为您的列的大写版本添加另一个索引。仅当您因为此解决方法而受到性能影响时才需要这样做。

【讨论】:

  • :是的,我可以在 jdbc 中将其更改为 upper(a_column) 并检查用户值和属性值是否相同,但是当我尝试将用户输入的值插入数据库表时它给出以下错误 ORA-02291: 违反完整性约束 - 未找到父键,因为存储在数据库中的值是小写和大写的组合我无法插入用户输入的值
  • @sephora 看起来你有一个现有的行。在这种情况下,您应该更新 - 而不是插入,但我不确定这与看起来要求简单选择的问题有什么关系。
猜你喜欢
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
  • 2011-03-23
  • 2017-07-12
  • 2020-04-25
  • 2019-12-10
  • 1970-01-01
相关资源
最近更新 更多