写博客之前先简单介绍 oracle 中 获取字符串的长度的长度的函数 :length() 和 lengthb();
其中length()函数 获取的是字符串的字符数,lengthb()获取的是字符串的字节数。但是需要注意的是 如果你的数据库中的字段是clob的话,使用lengthb()会报错!
在oracle 中:
select lengthb('你好') from dual; 返回的值是 4
select length('你好') from dual; 返回的值是 2
最近在项目的过程中需要获取字符串的长度,并且进行判断,如果超过了30个汉字就截取30汉字,话不多说解决方案如下:
select decode(sign(length(T.CONTENT)- 60),1,substr(T.CONTENT,1,60)||'......',-1,T.CONTENT) AS CONTENT
from wt_activity_comment T;
其中,sign() 函数的作用是 当 length(T.CONTENT)- 60 >0 时 返回 1 否则 返回-1