记录Oracle中文字符的相关处理
中文字符在utf-8编码下的范围是 \4e00- \9fa5,对应的中文是 一 到 龥。
在Oracle中处理中文字符可以用正则表达式相关的函数,比如:
1.用来判断是否匹配到正则表达式的函数 REGEXP_INSTR(返回第一个匹配子串的位置,匹配不到返回0);
2.获取匹配到的第一个子串的函数 REGEXP_SUBSTR;
3.替换所有匹配到的子串的函数 REGEXP_REPLACE;
4.计算匹配到子串个数的函数 REGEXP_COUNT;
5.判断是否完全匹配正则表达式的函数 REGEXP_LIKE (只能用在where语句中);
示例SQL:
SELECT
REGEXP_INSTR('TESTTEXT测试文本', '[' || unistr('\4e00') || '-' || unistr('\9fa5') || ']') reg_idx,
REGEXP_SUBSTR('TESTTEXT测试文本', '[' || unistr('\4e00') || '-' || unistr('\9fa5') || ']') reg_text,
REGEXP_REPLACE ('TESTTEXT测试文本',
'[' || unistr('\4e00') || '-' || unistr('\9fa5') || ']',
'a') replaced_text
FROM
dual
执行结果
REG_IDX | REG_TEXT | REPLACED_TEXT |
---|---|---|
9 | 测 | TESTTEXTaaaa |