Oracle中的数据类型:varchar2所带参数

varchar2(byte) 存储的是字节。数据库

varchar2(char) 存储的是字符。spa

 

varchar2(2 byte) 最多能够存储2个字节,varchar2(2 char) 最多能够存储2个字符。io

 

当数据库字符集分别:select

1.为 AL32UTF8 时,1个汉字是1个字符,1个汉字占3个字节,varchar2(2 byte) 一个汉字也不能存,varchar2(2 char) 能存2个汉字。数据类型

2.为 ZHS16GBK时,1个汉字是1个字符,1个汉字占2个字节,varchar2(2 byte) 能存1个汉字,varchar2(2 char) 能存2个汉字。数据

 

默认状况下,在指定数据类型为 varchar2(2) 时是什么状况呢?这跟数据库中的一个参数有关: NLS_LENGTH_SEMANTICSant

select name,value from v$parameter where name='nls_length_semantics';字符集

NAME                           VALUE
------------------------------ ------------------------------
nls_length_semantics BYTEco

 若是该参数的值为 byte ,则 varchar2(2) 等同于 varchar2(2 byte),这是默认状况。block