下面这个方法仅用在字符集为固定长度的数据库中:
SQL> WITH STR AS (SELECT 'ABCDE 中文字符串 FG' S FROM DUAL)
2 SELECT
3 LENGTH(S) * 2 - LENGTHB(S) ENG,
4 LENGTHB(S) - LENGTH(S) CHN,
5 LENGTHB(S) * 2 - LENGTH(S) * 2 CHN_B
6 FROM STR;
ENG CHN CHN_B
---------- ---------- ----------
7 5 10
使用类似的方法可以解决一些其他的问题,比如求字符串中数值的长度:
SQL> WITH STR AS (SELECT 'AB12349J;AL20AB' S FROM DUAL)
2 SELECT
3 LENGTH(S) - LENGTH(REPLACE(TRANSLATE(S, '0123456789', '9999999999'), '9')) NUM,
4 LENGTH(REPLACE(TRANSLATE(S, '0123456789', '9999999999'), '9')) NOT_NUM
5 FROM STR;
NUM NOT_NUM
---------- ----------
7 8
考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。