問題描述:用a.sql文件執行insert,不論是通過pl/sql還是sqlplus @文件名都是中文數據出現亂碼。
絕大多數情況是環境變量NLS_LANG的值和數據庫字符集不一致導致。
如果二者不一致,修改其一使二者一致。
建議修改NLS_LANG,方便、簡單、安全
登錄Linux,進入oracle用戶,編輯/home/oracle/.bash_profile文件
#vi /home/oracle/.bash_profile;
在最后一行添加:
export NLS_LANG="Simplified Chinese_CHINA.AL32UTF8"
AL32UTF8是根據你的oracle數據庫字符集填寫的。
之后重新編譯.bash_profile文件或者重新登錄
#source /home/oracle/.bash_profile;(重新編譯的方式,執行這段代碼)
驗證一下吧:#echo $NLS_LANG;
如果是Simplified Chinese_CHINA.AL32UTF8就對了,這時候sqlplus進入oracle,查看中文還是執行帶有中文的腳本就都可以啦