共计 1474 个字符,预计需要花费 4 分钟才能阅读完成。
这篇文章主要为大家展示了“sqlplus 显示乱码怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“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 显示乱码怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!