#星空云诊所#:云诊所-ORACLE数据库下列表中怎样实现不区分大小写

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

#星空云诊所#:云诊所-ORACLE数据库下列表中怎样实现不区分大小写

ORACLE 数据库下查询时是严格区分大小写的,与SQL SERVER 有着本质的区别,因此星空产品下面也没做单独的区别大小写的处理,可是当客户在使用ORACLE数据库时,如果列表中要求不区别大小写咋办呢?要咋实现呢?实现后又会带来什么影响呢?

一、解决方案:

 

通过二开插件的方式来干预列表过滤条件,最终会将条件字段和值都加上Upper函数,从而达到大小写忽略的目的;


二、具体的二开实现步骤:

1、编写二开插件:(可以参考如下示例)

image.webp

字段类型需要开发自己做判断,性能考虑一般来说只对文本字段进行处理即可

编译好的插件放在站点的Bin目录下;

2、开启插件:

先从数据库中查询过滤比较符(大部分字段都是用的分组为0的过滤比较符,如果还有其他自定义则自行加上);

image.webp

假设上面写好的插件是:

Kingdee.DevBOSTest.Business.PlugIn.TestUpperAnalysisPlugin,Kingdee.DevBOSTest.Business.PlugIn

则将上面的红色标记的记录的FclassName更新为此值:

UPDATE T_MDL_FILTERCONDITION SET FCLASSNAME='Kingdee.DevBOSTest.Business.PlugIn.TestUpperAnalysisPlugin,Kingdee.DevBOSTest.Business.PlugIn' where FID IN(17,34,60,67,81,83,211)

 

3、重启IIS即可生效;

二开实现风险

1、由于Oracle本身是区分大小写的,如果需要忽略大小写,查询的时候需要在SQL条件的字段和值转成全部大写或小写才能实现,因此会有一定的性能损耗,请自行评估此风险,如果查询的数据量特别大、或者多条件组合查询时性能会更差;


#星空云诊所#:云诊所-ORACLE数据库下列表中怎样实现不区分大小写

ORACLE 数据库下查询时是严格区分大小写的,与SQL SERVER 有着本质的区别,因此星空产品下面也没做单独的区别大小写的处理,可是当客户...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息