oracle防止亂碼 需要oracle安裝環境字符集、server伺服器端字符集和oracle客戶端字符集、客戶端作業系統(cmd或軟體secureCRT字符集)也都一致
通過在plsql中執行以下語句來判斷字符集:
select * from NLS_DATABASE_PARAMETERS;--檢視資料庫的字符集
select * from V$nls_Parameters  --檢視客戶端語言字符集如:NLS_LANGUAGE=SIMPLIFIED CHINESE
select * from V$nls_Parameters a where a.parameter='NLS_CHARACTERSET';  --檢視客戶端字符集,預設這裡是空的,需要配置環境變數後才會有如:NLS_CHARACTERSET=ZHS16GBK
select userenv('language') from dual; --檢視當前會話字語言符集如:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
環境變數配置:名稱NLS_LANG值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
windows cmd下輸入chcp顯示活動內碼表:936表示簡體中文
[[email protected] ~]$ env | grep LANG
NLS_LANG=American_America.AL32UTF8
LANG=en_US.UTF-8
NLS_LANG 是專為oracle客戶端程式使用的, 如sqlplus程式,LANG 是os 語言環境的設定,安裝了多個語言包的話就可以切換,注意優先順序是 LC_ALL > LC_* > LANG
因為這裡使用終端模擬軟體,securecrt,所以相當於多了一層互動
Appearance-character encoding-可按需隨意配置
一般配置個能支援中文的就可以
因為我這裡配置的是UTF-8
所以相當於3層結構中的 客戶端作業系統 就是UTF-8

可以在登入後檢視plsql---幫助--支援資訊,這裡有NLS_LANG如果是空的表示沒有成功載入,就需要配置環境變數
Character Sets
  Character size: 2 byte(s)
  CharSetID: 852
  NCharSetID: 2000
  Unicode Support: True
  NLS_LANG: SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  NLS_CHARACTERSET: ZHS16GBK
  NLS_NCHAR_CHARACTERSET: AL16UTF16

.