oracle數據庫亂碼處理已經解決

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