当前位置: 代码迷 >> 综合 >> oracle 数据类型varchar2(byte)和varchar2(char)区别
  详细解决方案

oracle 数据类型varchar2(byte)和varchar2(char)区别

热度:98   发布时间:2024-01-25 13:36:08.0

varchar2(byte) 存储的是字节。

varchar2(char) 存储的是字符。

Oracle默认的是存储的是字节,例 varchar2(100) 这里的字节是100个字节

这跟数据库中的一个参数有关: NLS_LENGTH_SEMANTICS

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

NAME                           VALUE
------------------------------ ------------------------------
nls_length_semantics BYTE
————————————————

比如:varchar2(2 byte) 最多可以存储2个字节;varchar2(2 char) 最多可以存储2个字符。

当数据库字符集为 AL32UTF8 时,一个汉字是一个字符,一个汉字占3个字节,varchar2(2 byte) 一个汉字也不能存,varchar2(2 char) 能存2个汉字。

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

  相关解决方案