1.修改遠程linux機器的配置
在vim /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 CHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
COL VALUE NEW_VALUE NCHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
--INTERNAL_USE是沒有寫在文檔中的參數,用以強制完成字元集一致化
ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
SHUTDOWN IMMEDIATE;
STARTUP;
-- 再次啟動資料庫一遍
SHUTDOWN IMMEDIATE;
STARTUP;
按照上面的步驟,一步一步來,一步不要少,完成以後就ok了