您的位置:首页 > 教育 > 培训 > 福州网页定制_沈阳海外模板建站_国内十大4a广告公司_石家庄网站建设培训

福州网页定制_沈阳海外模板建站_国内十大4a广告公司_石家庄网站建设培训

2025/4/26 20:59:16 来源:https://blog.csdn.net/gear1023/article/details/147434751  浏览:    关键词:福州网页定制_沈阳海外模板建站_国内十大4a广告公司_石家庄网站建设培训
福州网页定制_沈阳海外模板建站_国内十大4a广告公司_石家庄网站建设培训

一、背景

药品销售系统数据库采用SpringBoot + Mybatis-Plus + Oracle实现

二、问题

系统开发完成上线后,客户提出查询出现大写的集团名称可以查询到,小些名称查询不到,希望不要区分大小写

三、问题分析

由于查询逻辑比较复杂,首先考虑是不是数据库改个配置就好了,搜索了一圈,好多方案,某度置顶的AI出的基本都不靠谱,ChatGPT出了一个额外的方案,或者说不同的做法

1、业务逻辑SQL不想改

怕出问题,或者说怕该漏了,而且用不到索引了,都是Lower(xxx) = Lower('')

2、改数据库全局配置

试了下不行,也不熟配置修改,或者说很麻烦

ALTER SYSTEM SET NLS_COMP = LINGUISTIC SCOPE=BOTH;

3、修改SESSION使用如下两句也可以,能解决问题:

ALTER SESSION SET NLS_COMP = LINGUISTIC; -- 使比较不区分大小写和重音符号等
ALTER SESSION SET NLS_SORT = BINARY_CI; -- 使排序不区分大小写和重音符号等

3.1、试图改Java代码

增加拦截器,配置新的sqlSession,@before注解什么的,不熟折腾了半天报错,白忙活了

3.2、chatGPT的法子比较适合

亖、问题的问题--标识符错误

将ChatGPT给的配置代码改成yaml配置,如下所示,启动系统,报错“标识符错误”

spring:datasource:druid:connection-init-sqls: ALTER SESSION SET NLS_SORT = BINARY_CI;ALTER SESSION SET NLS_COMP = LINGUISTIC;

PL/SQL Developer 中将代码方成一行,确实报错

分成两行就没错

五、问题的问题的问题--配置换行

于是问题目标改为解决新问题的新方向:

试了下全部不行,怎么配置都不对

六、柳暗花明

这个配置方式给了新提示,修改一下,搞定!说了半天就这点有用😄😄

spring:datasource:druid:connection-init-sqls: - ALTER SESSION SET NLS_SORT = BINARY_CI- ALTER SESSION SET NLS_COMP = LINGUISTIC

最终,只是修改了一下配置,重新启动一下服务端,基本解决了这个ORACLE查询区分大小写的问题。

意见建议:v 13316098767

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com