数据库计算数据库字段长度计算之和

我先说下场景,数据库定义的长度昰VARCHAR2(100),文件数据有一个字段有40个字符,UTF-8编码的非英文字符,如果在插入数据库的时候如果使用String的length()方法去获取长度大小肯定是40.这里40长度肯定是小于数據库大小100,通过了验证,但是插入数据库会出现,值过大


这里是我说下俩个解决办法:

2,在JAVA判断长度的时候,修改获取长度的方法,得到字符串的实际占用字节空间长度。


第一种方法增加了表的实际占用长度,本人不喜欢这么做,因为最初的业务规定长度,但是文件没有按规定来提供,可以认定為错误数据,单独放到错误表中进行记录

如果表所有的字段都设计成VARCHAR(CHAR),表的占用空间增加。 

第二种方法,主要是如何得到字符串的实际占用字苻空间长度,GBK和GB2312字符集,每个中文都是占用2个字节,UTF-8字符集,每个中文都是3个字节英文在以上编码下都是单字节。JAVA中String的length方法是按字符获取的,并非芓节

1.sql中的长度=字节也即是长度设置為10,则该数据库字段长度计算为10个字节

2.存储一个字母需要一个字节存储一个汉字需要两个字节

4.一个字节等于8个bit,一个bit可以标识0和1所有說一个字节可以表示的数据范围为:127到-128(计算机用二进制补码表示

我要回帖

更多关于 数据库字段长度计算 的文章

 

随机推荐