Oracle数据库编码及存储汉字占用空间

查看oracle数据库编码:

在使用Oracle数据库作为项目数据库进行项目开发的时候,我们往往会将汉字添加到数据库中,有时候会因为所给字段的长度不足,导致在将汉字存入数据库中的时候会抛出”数字或值错误 :  字符串缓冲区太小“,返回来查看所插入的数据,发现长度并没有超出字段的给定长度,这是怎么回事,其实既然程序已经抛出这个错了,那么说明你定义的字段的长度是有问题的,接下来我们排查这个问题。

1、查看Oracle数据库的字符集编码select * from nls_database_parameters d where d.PARAMETER=’NLS_CHARACTERSET’;

2、如果编码格式是AL32UTF8或者UTF8,那么在这种编码格式下一个汉字所占用字符长度就是3个长度;如果编码格式是ZHS16GBK,那么一个汉字占用长度就是2

3、根据编码格式设置字段的长度,就能尽量避免字段超长这种问题

发表回复