前言
最近因业务需求,想去掉对应产品批次号中的中文字符。哈哈哈,有时候就很无奈。因业务规范需要较长的时间,So选择了代价最低的用技术来弥补。哈哈哈,好的,让我们先来看看这里面的数据是怎么样的
一、思路
1、使用正则表达式
最先想到的是使用正则表达式,但oracle正则表达式regexp_substr、regexp_like、regexp_replace是无法像其他正则表达式一样用[\u4e00-\u9fa5]来匹配中文的。
2、换种思路
批次规则一般包括数字、字母、特殊符号和汉字,去掉ascii表里面没有的字符不就是中文了。详情可参考对应ascii表。
二、具体案例
代码:
select distinct regexp_replace(生产批次号,'['||chr(128)||'-'||chr(255)||']','') th,生产批次号 from BI.QZ_ZB_GCPJCSJ order by 生产批次号 desc
效果:
解析:对应同学们运用的时候改变字段名称和表名即可。
三、总结
中文替换也要根据实际场景来应用后,要看替换后是否合理,不能影响使用才是王道。技术知识手段,运用好才是我们的目的。