由於裝Linux系統時選擇的是英文版,因此當須要測試中文數據庫時會出現亂碼,這裏記錄一下我修改字符集的操做。 node
一些命令: sql
一、查看sqlplus客戶編碼: 數據庫
$ echo $NLS_LANG vim
二、查看系統編碼: bash
$ locale oracle
三、查看數據庫字符集,執行以下查詢: 測試
select userenv('language') from dual; 編碼
1、安裝中文字符集 spa
列出可選安裝包: 操作系統
[root@node00 ~]# yum list kde*chinese
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Available Packages
kde-l10n-Chinese.noarch 4.10.5-2.el7 rhel-media
安裝中文字符集包:
[root@node00 ~]# yum install kde-l10n-Chinese.noarch
2、修改操做系統字符集
查詢當前系統支持的字符集:
[root@node00 ~]# locale -a
…………………………….
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.big5hkscs
zh_HK.utf8
zh_SG
zh_SG.gb2312
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.big5
zh_TW.euctw
zh_TW.utf8
zu_ZA
zu_ZA.iso88591
zu_ZA.utf8
發現新增了以上中文相關字符集,從新設置操做系統字符集,這裏採用zh_CN.utf8簡體中文字符集:
[root@node00 ~]# echo $LANG
en_US.UTF-8
[root@node00 ~]# export LANG=zh_CN.utf8
[root@node00 ~]# echo $LANG
zh_CN.utf8
3、修改sqlplus字符集
編輯oracle用戶的.bash_profile文件
[oracle@node00 dse]$ vim ~/.bash_profile
添加以下行:
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
使改變當即生效:
[oracle@node00 dse]$ source ~/.bash_profile
注:操做系統設置的是zh_CN.UTF-8,但在.bash_profile裏面還不能直接將NLS_LANG設置爲zh_CN.UTF-8,由於這個zh_CN.UTF8是字符集的localeID而不是字符集的名稱,真正的名稱叫SIMPLIFIED CHINESE_CHINA.AL32UTF8,若是設置成zh_CN.UTF8,oracle會報ORA-12705: Cannotaccess NLS data files or invalid environmentspecified錯誤。在.bash_profile裏面加入NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"; export NLS_LANG問題就解決了。
4、測試
[oracle@node00 dse]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 星期一 11月 28 16:47:49 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select username from dba_users;
USERNAME
------------------------------
MGMT_VIEW
SYS
SYSTEM
DBSNMP
SYSMAN
中文
TEST001
OUTLN
FLOWS_FILES
MDSYS
ORDDATA
----------------------------------------------------------------
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8
----------------------------------------------------------------
至此,問題解決。
參考文檔:http://blog.csdn.net/heqiyu34/article/details/38479849
http://blog.csdn.net/u010288731/article/details/51376512
http://blog.csdn.net/heqiyu34/article/details/38479849
----------------------------------------------------------------
Windows 下修改 Oracle 字符集