字符串替换成 * 号多用于对某些数据的保密:
从第一个汉字后改为 * 号 ,其中的2,表示从字符串的第几个字符开始。
SELECT REGEXP_REPLACE ('中华人民工作sdfaeasdABDf2324','[^\u4e00-^\u9fa5]|[A-Z]|[a-z]|[0-9]','*',2) AS A FROM dual;
也可以用于更新:
update USER_INFO_MAIN123
set USER_NAME=REGEXP_REPLACE (USER_NAME,'[^\u4e00-^\u9fa5]|[0-9]','*',2),
USER_ADDRESS=REGEXP_REPLACE (USER_ADDRESS,'[^\u4e00-^\u9fa5]|[0-9]','*',2)
;
update USER_WATCH_INFO123 SET WATCH_ADDRESS=REGEXP_REPLACE (WATCH_ADDRESS,'[^\u4e00-^\u9fa5]|[0-9]','*',2);
***************************
REGEXP_REPLACE
6个参数
第一个是输入的字符串
第二个是正则表达式
第三个是替换的字符
第四个是标识从第几个字符开始正则表达式匹配。(默认为1)
第五个是标识第几个匹配组。(默认为全部都替换掉)
第六个是是取值范围:
i:大小写不敏感;
c:大小写敏感;
n:点号 . 不匹配换行符号;
m:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。