oracle--varchar2
1. varchar2列最多占用4000字节,但是能容纳多少字符就不一定了
使用sql查看字符集:
select userenv('language') from dual;
--select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
如果是ZHS16GBK,则一个字符占用两个字节;AL32UTF8或UTF8,则英文字符一个字节,一个汉字占用三到四个字节
可使用sql
SELECT LENGTHB('您好') FROM DUAL;
查看占用了几个字节
2. 如果修改字符集,使用:
ALTER DATABASE CHARACTER SET UTF8
对数据库服务器而言,错误的修改字符集将会导致很多不可测的后果,可能会严重影响数据库的正常运行,所以在修改之前一定要确认两种字符集是否存在子集和超集的关系
特别说明:我们最常用的两种字符集ZHS16GBK和ZHS16CGB231280之间不存在子集和超集关系,因此理论上讲这两种字符集之间的相互转换不受支持修改
如果要从父集转到子集,需要使用INTERNAL_USE参数,跳过超子集检测
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;