关于Oracle数据库存储汉字所占字节数

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值