一个字符占用多少个字节,是由当前Oracle数据库系统采用的字符集来决定的。
查看当前Oracle数据库系统采用的字符集:
SQL> select * from nls_database_parameters;
NLS_CHARACTERSET是数据库字符集
NLS_NCHAR_CHARACTERSET是国家字符集
CHAR,VARCHAR2是按照数据库字符集来存储数据。
NCHAR,NVARCHAR2是按照国家字符集存储数据的。
SQL> select userenv('language') from dual;
如果在定义类型时,不指定单位,则默认是按byte,即以字节为单位的。
一般情况下,
数据库的NLS_CHARACTERSET 为AL32UTF8或UTF8,即一个汉字占用三到四个字节。
SQL>select dump('汉') from dual;
如果NLS_CHARACTERSET为ZHS16GBK,则一个字符占用两个字节。
Oracle的数据类型的长度单位是字节。后面会有详细解说。