Linux上修改oracle字符集
在SuSE Linux 11上安装oracle 10g时进入oracle安装界面总是出现乱码,主要原因是oracle用到了自带的jre自动选择语言所致。一种方法是把操作系统语言改英文,oracle安装界面也是英文;另一种方法就是首先安装jre,然后让oracle调用装好的jre:./runInstaller -jreLoc /usr/lib/jvm/java-1.5.0-sun-1.5.0.06/jre。笔者用的是第一种,但装好后,oracle默认的字符集为WE8ISO8859P1,存放中文的话会产生乱码现象。网上搜集资料,试图将字符由WE8ISO8859P1改为AL32UTF8,但AL32UTF8不是WE8ISO8859P1的超集,不能修改。最后将字符集改为ZHS16GBK,支持中文。
在sqlplus中执行:
查看字符集:
select * from V$NLS_PARAMETERS;
修改字符集:
shutdown immediate
startup mount
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
alter database character set INTERNAL_USE ZHS16GBK
注意修改之前先备份数据,删除所有的表,修改成功后再imp导入,则乱码能正常显示为中文。