乙個同事使用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)
865 zht16big5
832 ja16sjis
然後更新 列等
update sys.props$
set value$ = 'ja16sjis'
where name = 'nls_characterset'
select charsetid from sys.col$
where charsetform=1
update sys.col$
set charsetid=832
where charsetform=1
update sys.argument$
set charsetid=832
where charsetform=1
update sys.collection$
set charsetid=832
where charsetform=1
update sys.parameter$
set charsetid=832
where charsetform=1
update sys.result$
set charsetid=832
where charsetform=1
spring mysql架構中資料庫亂碼問題
不想看問題描述的直接看解決辦法。我們採用spring mysql做專案,在寫完repository測試時,發現插入資料庫的漢字都是亂碼。網上查是資料庫編碼問題,有的建議配置資料來源時令url jdbc mysql localhost 3306 solawdb?useunicode true char...
oracle資料庫中字元亂碼
1.1 88.152 os已安裝中文包,以下確認os層面中文是否可以顯示 1.2 88.153 os沒有安裝中文包,以下確認os層面中文無法顯示 1.3 確認os層面登入88.152伺服器,檢視 oracle資料庫中中文字元是否正常顯示 1.3.1.88.152確認服務端字符集 1.3.2.確認os...
Oracle資料庫中文亂碼
字符集是oracle為適應不同語言文字顯示而設定的。用於漢字顯示的字符集主要有zhs16cgb231280 zhs16gbk us7ascii和utf 8等。字符集同時存在於伺服器端和客戶端。伺服器端字符集是在安裝oracle時指定的,字符集登記資訊儲存在oracle資料庫字典的v nls para...