ITPub博客

首页 > 数据库 > Oracle > 设置sqlplus查看数据库表中的中文数据

设置sqlplus查看数据库表中的中文数据

Oracle 作者:牛肉面之歌 时间:2014-06-10 18:07:23 0 删除 编辑

需要设置3个字符集

数据库、数据库客户端程序、客户端操作系统

数据库字符集
select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET'; 
select * from nls_database_parameters;
普遍常遇到情况是 AL32UTF8

数据库客户端程序
设置NLS_LANG环境变量
NLS_LANG=American_America.AL32UTF8,American表示语言;America表示地区;AL32UTF8字符集类型
oracle字符集表示:
AL32UTF8:AL,代表all,指使用所有语言;32,,32位;UTF8编码
中文 export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8'
英文 export NLS_LANG='American_America.AL32UTF8'


客户端操作系统

securecrt配置字符编码

[oracle@localhost ~]$ env | grep LANG
NLS_LANG=American_America.AL32UTF8
LANG=en_US.UTF-8

这里有2个环境变量

NLS_LANG 是专为oracle客户端程序使用的, 如sqlplus程序
LANG 是os 语言环境的设置,安装了多个语言包的话就可以切换,注意优先级是 LC_ALL > LC_* > LANG

因为这里使用终端仿真软件,securecrt,所以相当于多了一层交互

Appearance-character encoding-可按需随意配置
一般配置能支持中文的就可以,这里配置的是UTF-8,它相当客户端操作系统的设置

例如:设置了如下参数之后,就可以在sqlplus中查看表的中文数据
查看数据库字符集
SQL> select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET'; 
PARAMETER                      VALUE
------------------------------ ------------------------------
NLS_CHARACTERSET               ZHS16GBK
查看环境变量
[oracle@oracle10g ~]$ env | grep LANG
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
LANG=en_US.UTF-8

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29424472/viewspace-1179899/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2014-01-04

  • 博文量
    76
  • 访问量
    115106