一個.NET的入庫程序需要向Oracle中插入中文數據,但是在實際操作中發現所有中文都變成了??
Google查詢說原因是Oracle客戶端的字符集與服務器端不匹配,需要更改客戶端(instant client)或者服務器端的字符集,服務器端的字符集自然不能隨便更改,因此只能更改客戶端字符集。
在SQL Developer中查詢服務器端的字符集:
select userenv('language') from dual;
結果:
因此只要在客戶端設置同樣的字符集即可。
1. 對於Windows,在用戶環境變量中設置NLS_LANG變量
2. 對於Linux,在.bash_profile中設置NLS_LANG變量
NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" export NLS_LANG
結果: