Oracle 字符集設置

 

由於裝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 字符集

 

 

相關文章
相關標籤/搜索