首页 新闻 会员 周边

问一个关于oracle中nvarchar2()字段类型的问题..

0
悬赏园豆:5 [待解决问题]

以下这段话来自网上:

"

NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则

1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。

2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。

"

 

那么我有个疑惑:

varchar2(4000)存放的最大中文是2000个.

nvarchar2(2000)存放的最大中文也是2000个.

 

但是,如果存放的数据中有1500个中文,500个英文,那么字符集为中文的情况下,

后者已经完全存满了.

而前者还可以再存放4000-(1500*2)-500=500个英文,

 

既然它能根据内容存放得更多,那么为什么还要有nvarchar2呢?

是不是nvarchar2将所有存放的字符(无论中英)都用2个字节来存放,在写入和读取的时候效率会比varchar2高?

 

欢迎回复讨论..

 

 

 

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2015-03-07 16:05
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册