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;

 

posted @ 2016-03-21 15:49  未来的那啥  阅读(191)  评论(0编辑  收藏  举报