sqlplus显示乱码怎么办

这篇文章主要为大家展示了“sqlplus显示乱码怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“sqlplus显示乱码怎么办”这篇文章吧。

站在用户的角度思考问题,与客户深入沟通,找到资源网站设计与资源网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名申请虚拟主机、企业邮箱。业务覆盖资源地区。

1、现象

最近使用oracle新搭环境发现通过sqlplus登陆时,显示乱码。

2、解决方案

通过查阅资料发现sqlplus乱码与操作系统用户中的NLS_LANG这个环境变量有关系,如果这个与数据库字符集不一致的话就会产生乱码。坚持NLS_LANG这个环境变量发现根本就没有设置这个变量,则应该是读取操作系统字符集来作为默认字符集。

[oracle@localhost ~]$ echo $NLS_LANG

[oracle@localhost ~]$ 

如何查看数据库字符集,通过nls_database_parameters查询,可以得到NLS_CHARACTERSET的值为UTF8即为数据库字符集

SQL>  col parameter for a30

SQL> col value for a25

SQL>  select * from nls_database_parameters;

PARAMETER                      VALUE

------------------------------ -------------------------

NLS_LANGUAGE                   AMERICAN

NLS_TERRITORY                  AMERICA

NLS_CURRENCY                   $

NLS_ISO_CURRENCY               AMERICA

NLS_NUMERIC_CHARACTERS         .,

NLS_CHARACTERSET               UTF8

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

查询NLS_LANG的组成规则为NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET,即操作系统环境变量应该要设置为AMERICAN_AMERICA.UTF8。

顺利解决了乱码问题,修改.profile(unix 系统)或.bash_profile,增加

 export NLS_LANG="AMERICAN_AMERICA.UTF8"

就行了。

以上是“sqlplus显示乱码怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章标题:sqlplus显示乱码怎么办
本文网址:http://azwzsj.com/article/jgcddg.html