Linux系统下Oracle显示中文乱码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux系统下Oracle显示中文乱码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2284字,纯文字阅读大概需要4分钟。
内容图文
![Linux系统下Oracle显示中文乱码](/upload/InfoBanner/zyjiaocheng/901/69e15bf72c104917b1be0396f096de1b.jpg)
1.Oracle数据库出现乱码的原因:
操作系统与服务器一致,但客户端与服务器字符集不一致
客户端与服务器一致,但操作系统与服务器不一致
2.解决办法:
设置相关的字符集,保证操作系统、客户端、数据库服务器,保证这三者的字符集都相同。
3.针对情况:
设置客户端的字符集与服务器一致,假如服务器的字符集为:UTF8(建议创建数据库的时候用这个字符集,中英文都能兼容)
1)查看操作系统字符集
# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
查看默认是zh_CN.UTF-8,rhel7配置文件是locale.conf
# vi /etc/locale.conf
LANG="zh_CN.UTF-8"
2)查看数据库字符集
$ su - oracle
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
3)编辑linux 的NLS_LANG变量
$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
LANG=zh_CN.UTF-8; export LANG
#NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8'; export NLS_LANG
NLS_LANG='AMERICAN_AMERICA.AL32UTF8'; export NLS_LANG
配置生效:source ~/.bash_profile
3)ORACLE11G 字符集更改(这里更改为AL32UTF8)
1、用sysdba角色用户登录sqlplus: 命令行输入:sqlplus sys as sysdba
2、输入口令,进入sqlplus:sql>---
3、依次键入下面的命令行执行:
shutdown immediate;
STARTUP MOUNT;
ALTER SESSION SET SQL_TRACE=TRUE;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE character set INTERNAL_USE AL32UTF8;
ALTER SESSION SET SQL_TRACE=FALSE;
shutdown immediate;
startup;
注意:执行上述命令,有可能造成数据库中已有数据混乱的情况,所以在进行操作前,
要进行数据库的备份操作。
参考地址:
1.https://www.linuxidc.com/Linux/2018-01/150458.htm
2.https://www.cnblogs.com/gaoyuechen/p/9447404.html
内容总结
以上是互联网集市为您收集整理的Linux系统下Oracle显示中文乱码全部内容,希望文章能够帮你解决Linux系统下Oracle显示中文乱码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。