-
AL32UTF8与UTF8的区别
其实AL32UTF8就是UTF8的升级(自我认为),AL32UTF8是oracle 9i版本才出现的,而UTF8则在很早以前就已经存在了,AL32UTF8只是又增加了一些新的补充字符而已。
所以他们的区别其实不是很大,这里要注意一点,如果使用oracle 9i之前的版本用AL32UTF8的编码集可能会出现问题。
-
UFT8与GBK的区别
主要的区别在于他们占用的字节不同(汉字),UTF占用的是三个字节,而GBK怎么占用两个字节。
例如:oracle中的varchar2(30)类型,如果是utf8,则只能输入10汉字;而gbk则可以输入15个汉字。
-
oracle数据库的字符集修改
首先推荐使用cmd来进行操作,那为什么不用sqlplus呢?主要原因就是cmd中可粘贴(嘿嘿)
1.利用cmd登入数据库
//as sysdba很重要,一定要加上
sqlplus 用户名/密码@ip地址:1521/实例 as sysdba;
例:sqlplus sys/admin@localhost:1521/orcl as sysdba;
2.首先查看oracle数据库的编码
select userenv('language') from dual;
3.关闭数据库
shutdown immediate;
4.以mount打来数据库
startup mount;
5.设置session
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
6.启动数据库
alter database open;
7.修改字符集
ALTER DATABASE CHARACTER SET ZHS16GBK;
//如果提示“新字符集必须为旧字符集的超集”,请添加“INTERNAL_USE”
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
8.关闭,重新启动
shutdown immediate;
startup
注:如果执行到第3,4步出错的话,那么关闭与数据库连接的一切东西,重启服务。
重新开始,只执行1,5,7步完成后,再重启数据库实例服务(OracleServiceORCL)。
查看字符集,成功!!!
如果解决了大家的问题,希望大家多多评论,或者有什么疑问也可以评论出来,大家一起探讨!