日期:2014-05-16  浏览次数:20373 次

[Oracle]存储汉字字段长度

我们系统当中如果备注字段要输入200个汉字,则该字段要么设置成varchar2(600);或者nvarchar2(200).

 

下面提供参考,针对Oracle设置备注字段保存汉字长度问题。

总结:

1.       Varchar2的字段,保存汉字量是长度/3, 即 varchar2 (30) 的字段,必能保存10个汉字。

2.       nvarchar2的字段,保存汉字是1:1的,即 nvarchar2 (30) 的字段,必能保存30个汉字。

 

Create table

createtable test_test (idnumbernotnull, remark_varchar2 varchar2(10), remark_nvarchar2 nvarchar2(10));

 

测试两个字段保存10个汉字长度内容“一二三四五六七八九十”

测试varchar2(10)到底能保存几个汉字



在这里针对varchar2 类型字段,1个汉字抵3个长度。

2.改为存储三个汉字“一二三”,可以保存成功。


测试nvarchar2(10)到底能保存几个汉字

1.十个汉字可以正常保存



2.十一个汉字呢,保存报错,提示实际长度11.



 

1楼zzx3q昨天 18:56
我们数据库是utf-8编码,是1比3n生产库是gb2312编码,是1比2