原文地址:http://yanwushu.sinaapp.com/plsql-developer-chinese-charactereset/
oracle字符集沒法存儲中文字符。下面的語句查詢oracle字符集。
selectuserenv('language') from dual;
如果查詢結果支持中文字符(比如gbk,utf⑻),那末這個緣由排除。否則應當重新設置oracle字符集為支持中文的字符集。具體方法請自行搜索。
首先確認oracle字符集支持中文字符,然后看plsql字符集和oracle字符集是不是相同,如果2者字符集不同,會造成plsql中插入的中文到數據庫中變成亂碼。設置plsql developer的字符集,tools->preferences->fonts->main fonts->字符集,以下圖:
如果你的plsql沒有設定中文字符集的功能,比如我的plsql developer10就沒有,那可以用設置環境變量的方式解決此問題,在環境變量中添加1個名稱為NLS_LANG值為你oracle字符集(比如SIMPLIFIED CHINESE_CHINA.ZHS16GBK)的系統變量,重啟plsqldeveloper,問題便可解決。
解決此問題的關鍵在與理解字符集的含義,對此概念不清楚的同志可以自行搜索。關于修改環境變量為什么能解決此問題,觸及到oralce對字符集選擇的優先級問題,有興趣的同志可以深入研究。