1.修改远程linux机器的配置 在vi /etc/sysconfig/i18n文件里的配置如下: LANG="zh_CN.GBK" SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_CN.GBK" SYSFONT="latarcyrheb-sun16" 2.修改稿oracle的环境变量:用oracle用户进入系统。在.bash_profile文件最后加上以下内容 NLS_LANG="SIMPLIFIED Chinese"_CHINA.ZHS16GBK export NLS_LANG 3.重启数据库服务器,启动数据库监听,启动数据库 4.用sys用户登录数据库,执行以下语句: update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET' 重启数据库监听。 到这儿,数据库数据已能正常显示,但以前的数据还是乱码,需要重新导入。数据库会出现另一个问题 ora-06552. 5.以下是ora-06552的解决方法: 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; COL VALUE NEW_VALUE CH***T SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET'; COL VALUE NEW_VALUE NCH***T SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET'; --INTERNAL_USE是没有写在文档中的参数,用以强制完成字符集一致化 ALTER DATABASE CHARACTER SET INTERNAL_USE &CH***T; ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCH***T; SHUTDOWN IMMEDIATE; STARTUP; -- 再次启动数据库一遍 SHUTDOWN IMMEDIATE; STARTUP; 按照上面的步骤,一步一步来,一步不要少,完成以后就ok了
|