Oracle数据库汉字占几个字节

  1. ORACLE数据库它可以存储字节或字符,例如 CHAR(12 BYTE) CHAR(12 CHAR)的意义是不同的.一般来说默认是存储字节,你可以查看数据库参数NLS_LENGTH_SEMANTICS的值
SELECT * FROM v$nls_parameters WHERE PARAMETER='NLS_LENGTH_SEMANTICS';
--结果为BYTE,说明存储是字节类型
  1. 如果定义为VARCHAR2(50 CHAR),那么该列最多就可以存储50个汉字,如果定义字段为VARCHAR2(50) 或VARCHAR2(50 BYTE)那么它最多可以存储多少个汉字就要视数据库字符集编码决定。
  2. ORACLE数据库汉字占用几个字节,要根据ORACLE中字符集编码决定,一般情况下,数据库的NLS_CHARACTERSET 为AL32UTF8或UTF8,即一个汉字占用三到四个字节。如果NLS_CHARACTERSET为ZHS16GBK,则一个字符占用两个字节.
SELECT * FROM v$nls_parameters WHERE PARAMETER='NLS_CHARACTERSET';
  1. 至于具体情况,可以通过LENGTHB或者VSIZE函数求得是占用字节数。LENGTH函数求得是占用字符数,LENGTHB或者VSIZE函数求得是占用字节数。
select  lengthb('中国') from dual;
select  length('中国') from dual;

LENGTH是计算字符的个数,输入的参数先被转为字符类型计算

更多推荐

Oracle数据库汉字占几个字节