oracle字符门类varchar2一个中文占多少字节

oracle字符类型varchar2一个中文占多少字节

Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定 查看oracle server端字符集

 

select userenv('language') from dual;

 

如果显示SIMPLIFIED CHINESE_CHINA.ZHS16GBK,一个汉字占用两个字节;
如果显示SIMPLIFIED CHINESE_CHINA.AL32UTF8,一个汉字占用三个字节.

可以用以下语句查询一个汉字占用的字节长度

 

select lengthb('你') from dual;//返回2,表示2个字节

select length('你') from dual;//返回1,表示1个字符
 
 
字符串类型字段默认的长度是以字节为单位的,具体取决于参数nls_length_semantics 的值(使用show
parameters可以看到这个参数的值),默认是BYTE,也就是以字节为单位的,如果是CHAR则是以字符为单位的。
 
表的某列可以使用字符为单位吗?
当然可以,比如这样创建即可:create table test_ly(a varchar2(4 char))
这样a列就最多能保存4个字符,而不是4个字节了。