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就好了