一個同事使用Windows操作系統中文環境安裝完10g以後,因為工作需要需要使用日文的操作系統。相應的數據庫也應該是日文。這時候數據庫中默認的為中文的字符集,因為安裝數據庫的時候默認的字符集是根據系統而來的。改過操作系統的語言設置以後,Oracle10g內部出現亂碼。
一般情況下這種的最好該一下注冊表的字符集(1)。 然後重建一個日文字符集的數據庫就可以解決問題。
假如是空數據庫,那麼可以通過(1,2)來實現。而不用重新創建數據庫
解決辦法
1. 修改注冊表的字符集信息
在注冊表的HKEY_LOCAL_MacHINE\SOFTWARE\Oracle裡有三個需要修改
HKEY_LOCAL_MacHINE\SOFTWARE\Oracle
HKEY_LOCAL_MacHINE\SOFTWARE\Oracle\HOME
修改其下的NLS_LANG參數為JAPANESE_JAPAN.JA16SJIS
重新啟動庫,整個庫就變成日文的了。
2.查看系統配置信息SELECT * FROM sys.props$ 可以查看系統配置信息 可以更新系統信息update sys.props$ set value$=''JA16SJIS'' WHERE name = ''NLS_CHARACTERSET'';
update sys.props$ set value$=''JA16SJIS'' WHERE name = ''NLS_CHARACTERSET''
3.然後更新列信息 查詢字符集的ID 和name
SELECT NLS_CHARSET_ID(VALUE) NLS_CHARSET_ID,VALUE NLS_CHARSET_NAME
FROM V$NLS_VALID_VALUES
WHERE PARAMETER = ''CHARACTERSET''
ORDER BY NLS_CHARSET_ID(VALUE)