当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
计算字符串中包含中文、英文字符长度
发布时间:2011/3/31 9:59:27 来源:城市学习网 编辑:ziteng

  下面这个方法仅用在字符集为固定长度的数据库中:

  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

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved