設定環境變數 重啟plsql
nls_lang=american_america.al32utf8
原因:客戶端與伺服器端編碼不一致
了解下nls_lang的知識
nls_lang 引數組成
nls_lang=_.
檢視oracle服務端編碼:select * from sys.nls_database_parameters;
檢視client編碼:select * from sys.nls_session_parameters;
從下面服務端 編碼我們可以得到: nls_lang = american_america.al32utf8
檢視oracle服務端編碼:select * from sys.nls_database_parameters;
nls_language american
nls_territory america
nls_currency $
nls_iso_currency america
nls_numeric_characters .,
nls_characterset al32utf8
nls_calendar gregorian
nls_date_format dd-mon-rr
nls_date_language american
nls_sort binary
nls_time_format hh.mi.ssxff am
nls_timestamp_format dd-mon-rr hh.mi.ssxff am
nls_time_tz_format hh.mi.ssxff am tzr
nls_timestamp_tz_format dd-mon-rr hh.mi.ssxff am tzr
nls_dual_currency $
nls_comp binary
nls_length_semantics byte
nls_nchar_conv_excp false
nls_nchar_characterset al16utf16
nls_rdbms_version 11.2.0.1.0
檢視client編碼 :select * from sys.nls_session_parameters;
nls_language simplified chinese
nls_territory china
nls_currency ¥
nls_iso_currency china
nls_numeric_characters .,
nls_calendar gregorian
nls_date_format dd-mon-rr
nls_date_language simplified chinese
nls_sort binary
nls_time_format hh.mi.ssxff am
nls_timestamp_format dd-mon-rr hh.mi.ssxff am
nls_time_tz_format hh.mi.ssxff am tzr
nls_timestamp_tz_format dd-mon-rr hh.mi.ssxff am tzr
nls_dual_currency ¥
nls_comp binary
nls_length_semantics byte
nls_nchar_conv_excp false
明顯客戶端的編碼和伺服器端 的不一致!!!!解決辦法:
設定環境變數 重啟plsql
nls_lang=american_america.al32utf8
此方法也適合用exp imp !以免中文有亂碼出現!或部分資料亂碼!
winnt> set nls_lang=american_america.al32utf8
linux> export nls_lang=american_america.al32utf8
檢視 nls_lang 的方法
windows使用:echo %nls_lang%
c:\users\administrator>echo %nls_lang%
american_america.al32utf8
修改db編碼的辦法:(在oracle 11g上通過測試) --風險操作....最好不要用!!!!!!!!
sql> conn system as sysdba;
sql> shutdown immediate;
sql> startup mount;
sql> alter system enable restricted session;
sql> alter system set job_queue_processes=0;
sql> alter database open;
sql> alter database character set internal_use al32utf8;
sql> shutdown immediate;
sql> startup
另外如果plsql檢視結果亂碼 可能是字型的問題 :請見
關於SQL語句條件值寫中文查不到的問題
在使用jdbc鏈結mysql執行sql語句的時候,sql語句中的where條件,引數值帶中文,則查詢不到結果,而where條件,引數值都為數字或字母時可以正常查詢,原因是mysql的character set connection預設的設定不是utf8,我的解決辦法,開啟命令列提示符操作介面 登陸m...
mysql like 查不到結果 中文 查詢優化
參考 mysql like keyword 不走索引替代方法 select locate xbar foobar 返回0 select locate bar foobarbar 返回4 select locate bar foobarbar 5 返回7 備註 返回 substr 在 str 中第一次...
解決pymysql查不到最新資料的辦法
最近用 flask 寫了幾個介面部署在伺服器上,然後用 pytest 來做測試,但遇到了問題,搞了大半天才把問題解決。問題大概是這樣的,我在本地環境用 pytest 寫 來對伺服器上 flask 的介面進行測試,在測試刪除介面的時候,第一步我在 pytest 中會通過sql插入資料到mysql資料庫...