大家好,欢迎来到IT知识分享网。
***和数据库的编码有关系***
1、数据库编码查询sql:
1)、SELECT value$ FROM sys.props$ WHERE name = ‘NLS_CHARACTERSET’ ;
ZHS16GBK:一个汉字占用2个字节
AL32UTF8:一个汉字占用3个字节
2)、select userenv(‘language’) from dual;
AMERICAN_AMERICA.ZHS16GBK:一个汉字占用2个字节
AMERICAN_AMERICA.AL32UTF8:一个汉字占用3个字节
2、查询占用字符数:
select length(‘中华as12’) from dual –4(1+1+1+1+1+1)
汉字、字母、数字:各占1字符
3、查询占用字节数:
select lengthb(‘中华as12’) from dual –8(2+2+1+1+1+1)
汉字:2字节/3字节;字母:1字节; 数字:1字节
注:上述varchar2肯定是适用的(因为其数据库设置长度就是以字节为单位的),别的字段类型待验证,因为类似nvarchar2这样的字段,数据库中设置的长度本身就是以字符为单位的,所以并不能用数据库字段长度直接套用上述计算。
4、追加一个才看到的点,用全角方式输入的字母(asd)、数字(123)的占用字节数和半角方式输入的字母(asd)、数字(123)是不一样的,以 ZHS16GBK 编码的数据库为例,半角的字母数字的字节数为1,但是全角输入的则分别都是占用2个字节。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22580.html