Linux下Oracle字符集問題引發的漢字插入失敗解決方案

最近作項目,由於開發人員的疏忽,在創建oracle9i數據庫時沒有選擇字符集,使用過程中,通過sql語句在該數據庫中的表空間執行插入操作時,會報錯。經排查,是由字符集問題引起,現在將解決方法提供如下:
在linux下若安裝oracle沒有選擇ZHS16GBK,則在處理漢字時會有亂碼情況出現。解決方法:
 命令行模式下執行sqlplus "/as sysdba",以sysdba身份進入sqlplus,先執行sql語句:select * from sys.props$,查看NLS_CHARACTER的值,若不是"ZHS16GBK",則可運行sql語句:update sys.props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET'
 
執行完畢後,停止數據庫(sqlplus中使用sysdba登陸,執行shutdown命令),然後啓動數據庫,啓動實例(startup),插入漢字成功。
 
經測試,該種方式由於修改了字符集的系統設置,畢竟是不妥當的(我們後來發現備份表空間失敗問題,疑似由此引起),最好的辦法還是重新創建數據庫,創建時選擇字符集爲“ZHS16GBK”
發佈了26 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章