下面这个方法仅用在字符集为固定长度的数据库中:
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
关键词标签:字符串
相关阅读
热门文章 Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制
人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限
查看所有0条评论>>