Oracle怎么用正则表达式过滤字段中"非汉字"的所有字符? 50

Oracle怎么用正则表达式过滤字段中"非汉字"的所有字符?Oracle怎么用正则表达式过滤字段中"非汉字"的所有字符?我的姓名字段中因为录入问题,有空格,各种符号,数字... Oracle怎么用正则表达式过滤字段中"非汉字"的所有字符?Oracle怎么用正则表达式过滤字段中"非汉字"的所有字符?我的姓名字段中因为录入问题,有空格,各种符号,数字,大小写字母,怎么用正则表达式在查询时过滤掉这些呢?只保留汉字,求大神!!! 展开
 我来答
草原上之狼
高粉答主

2018-06-14 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:4046万
展开全部
从表里提取汉字, 需要考虑字符集, 不同的字符集汉字的编码有所不同
这里以GB2312为例, 写一函数准确地从表里提取简体汉字.

假设数据库字符集编码是GB2312, 环境变量(注册表或其它)的字符集也是GB2312编码
并且保存到表里的汉字也都是GB2312编码的

那么也就是汉字是双字节的,且简体汉字的编码范围是
B0A1 - F7FE
换算成10进制就是
B0 A1 F7 FE
176,161 - 247,254

我们先看一下asciistr函数的定义
Non-ASCII characters are converted to the form \xxxx, where xxxx represents a UTF-16 code unit.
但是这并不表示以 "\" 开始的字符就是汉字了

举例如下
SQL> select * from test;

NAME
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式