PLSQL中文插入亂碼問題解決方法


1.查看服務器端編碼

PLSQL輸入以下代碼
select userenv('language') from dual;
我實際查到的結果為:AMERICAN_AMERICA.AL32UTF8

 

 

 2.
執行語句 select * from V$NLS_PARAMETERS  
查看第一行中PARAMETER項中為NLS_LANGUAGE 對應的VALUE項中是否和第一步得到的值一樣。
如果不是,需要設置環境變量.
否則PLSQL客戶端使用的編碼和服務器端編碼不一致,插入中文時就會出現亂碼.
3.
設置環境變量(一定要設置)
計算機->屬性->高級系統設置->環境變量->新建
設置變量名:NLS_LANG,變量值:第1步查到的值(我的是AMERICAN_AMERICA.AL32UTF8).

 

 

 

 


4.
重新啟動PLSQL,插入數據正常

補充:PL/SQL導入數據到另一數據庫亂碼


導入數據庫為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK;

導出數據庫為: AMERICAN_AMERICA.AL32UTF8

為了方便解決此問題,所以就修改了導入數據庫所使用的語言跟字符集.

開始菜單打開運行對話框,使用”regedit“命令進入注冊表,找到我的電腦下的:HKEY_LOCAL_MACHINE/SOFTWARE

/ORACLE/KEY_OraDb11g_home1(此路徑為oracle在注冊表中的配置信息),

 

 

 

查看名稱為NLS_LANG的值為SIMPLIFIED CHINESE_CHINA.ZHS16GBK,修改成AMERICAN_AMERICA.AL32UTF8,

 

 

 

 5.

再重啟下PLsql就好了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM