似乎Oracle比较运算符=和类似区分大小写 无需更改NLS_COMP: 是否可以为每个查询添加一个提示,使它们不区分大小写?
something like: select /*IGNORE_CASE*/ from tab where val like '%noMatTer%'
是否有可能在Oracle DB中引入/“教导”/编写新提示?
查询级别上的任何内容都可以完成吗? (除了明显的:WHERE upper(user_name)LIKE'%ME%')
答案 0 :(得分:4)
没有提示。但是,从12c中的新功能指南...
不区分大小写的数据库 Oracle数据库支持不区分大小写的排序规则,例如BINARY_CI或GENERIC_M_CI。通过将这种排序规则应用于SQL操作,应用程序可以以不区分大小写的方式执行字符串比较和匹配,而与数据的语言无关。使用新的Oracle Database 12c第2版(12.2)为列声明归类的功能,您可以声明一个列,以便始终以不区分大小写的方式进行比较。如果未明确指定,列排序规则将从表默认排序规则继承,而默认排序规则将从模式默认排序规则继承。这样,您可以轻松地将数据库中应用程序的所有字符列声明为不区分大小写。
使用此功能,开发人员可以将数据声明为不区分大小写,并且不必向SQL语句添加显式的大写操作。此功能简化了从允许此类声明的非Oracle数据库系统迁移到Oracle数据库的过程。
答案 1 :(得分:0)
您是否考虑过使用lower()函数进行查询级补救?
select * from tab where lower(val) like lower('%noMatTer%')