Oracle、达梦:数据库大小写不敏感,但是又要区分大小写敏感(默认敏感)

一、

  • 艹,这个需求就很操蛋。

  • 实现

SELECT *
FROM T1
WHERE REGEXP_LIKE(field, '.*value.*', 'c');

在 Oracle 数据库中使用 REGEXP_LIKE 函数时,'c' 参数用于指定比较应该是大小写敏感的。默认情况下,正则表达式的匹配在 Oracle 中是大小写敏感的,但这个参数可以用来明确这一行为,尤其是在数据库的全局设置可能影响大小写敏感性的环境中。
REGEXP_LIKE 函数的一般语法是:
其中 match_parameter 可以包括以下几种:
'c':表示大小写敏感(Case sensitive)。
'i':表示大小写不敏感(Case insensitive)。
'n':允许模式匹配符号 "." 匹配换行符。
'm':将源字符串视为多行,其中 ^ 和 $ 分别匹配每行的开始和结束,而不是整个字符串的开始和结束。
如果没有特别指定,REGEXP_LIKE 默认是大小写敏感的,即默认包含 'c' 的行为。如果你的环境中正则表达式似乎不遵循这一默认行为,可能是由于数据库的 NLS_SORT 或 NLS_COMP 参数设置导致的。在这种情况下,明确使用 'c' 参数可以帮助确保查询的行为符合预期。

二、不区分大小写查询

SELECT *
FROM T1
WHERE LOWER(field) LIKE LOWER('%value%') ;

posted on   C_C_菜园  阅读(1410)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示