oracle數據庫客戶端和服務器端插入中文亂碼問題

查看數據庫的字符集:

select * from nls_database_parameters;

 

發現:NLS_CHARACTERSET               WE8ISO8859P1

 

表示字符集支持8位,即1個字節,而漢字是2字節,16位的。故應該更改爲 ZHS16GBK.

 

sys用戶下:alter database character set INTERNAL_USE ZHS16GBK;

 

提示:ORA-12719: operation requires database is in RESTRICTED mode

 

即要在RESTRICTED模式下更改。

: startup mount

    alter system enable restriced session;

 

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

 

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

 

   alter database open

 

: 再alter database character set INTERNAL_USE ZHS16GBK;

 

注:restrict模式會將數據庫置於open模式,此時只有restricted session權限的用戶才能訪問數據庫,用於維護動作。

 

關閉restricted 模式:alter system disable restricted session;

 

我用的是Linux系統,故在.bash_profile中增加變量:

NLS_LANG=Chinese.China.ZHS16GBK

 

export NLS_LANG

 

此時服務器端也可以插入中文了。但是我的客戶端插入的中文,在服務器端顯示亂碼,服務器端插入的中文,在客戶端顯示亂碼。還沒解決,等待向高人求教。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章