oracle 数据库匹配中文

浏览:46日期:2023-06-08

问题描述

请教一下,Oracle 数据库utf -8,有个表的字段,有中文英文数字符号,如何把中文删除。数据如图。

oracle 数据库匹配中文

我用如下代码测试无效。测试了具体文字可以替换,但是字符集不行。朋友在mysql下用这个字符集测试成功。网上没查到其他办法,有没有人知道什么问题?

update 表名 set 字段= regexp_replace(字段, '[u4e00-u9fa5]','')

问题解答

回答1:

update 表名 set 字段= regexp_replace(字段, '[' || unistr('0391') || '-' || unistr('9fa5') || ']','')

就可以了,oracle不支持u或x

回答2:

之前不知道有unistr这个这个函数,所以regexp_replace(str, '[!a-zA-Z0-9再加上要保留的字符]')这样来处理。不过不够完善。

相关文章: