RedHat安装Oracle后中文乱码
radhat7.1
Oracle11gr2
安装Oracle时忘记设置字符集,导致安装后中文乱码,中文变成"???????????"
分析原因是Oracle服务器端和客户端的字符集不一致。
客户端字符集
[root@dbserver ~]# echo $NLS_LANG [root@dbserver ~]#
发现客户端字符集没有设置。
服务器端字符集
[oracle@dbserver ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Wen Jul 23 00:57:47 2015 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started. Total System Global Area 1586708480 bytes
Fixed Size 2213736 bytes
Variable Size 922749080 bytes
Database Buffers 654311424 bytes
Redo Buffers 7434240 bytes
Database mounted.
Database opened.
SQL> select userenv('language') from dual; USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN.AMERICA.AL32UTF8
//我的后边不是“AL32UTF8”,具体是哪一个忘了
SQL>
解决方法:
修改oracle服务器端编码
[oracle@dbserver ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 23 17:40:50 2015 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started. Total System Global Area 1586708480 bytes
Fixed Size 2213736 bytes
Variable Size 922749080 bytes
Database Buffers 654311424 bytes
Redo Buffers 7434240 bytes
Database mounted.
Database opened.
sql> conn / as sysdba;
sql> shutdown immediate;
database closed.
database dismounted.
oracle instance shut down.
sql> startup mount;
oracle instance started.
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted.
sql> alter system enable restricted session;
system altered.
sql> alter system set job_queue_processes=0;
system altered.
sql> alter system set aq_tm_processes=0;
system altered.
sql> alter database open;
database altered.
sql> alter database character set internal_use ZHS16GBK;
sql> shutdown immediate;
sql> startup;
SQL> conn /as sysdba
Connected.
SQL> select userenv('language') from dual; USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK SQL> exit;
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@dbserver ~]$
修改oracle客户端编码
[oracle@dbserver ~]$ vim .bash_profile
在该文件中添加以下两行
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export NLS_LANG
然后reboot系统。
注:修改用户名下的设置文件只对当前用户有效,如果修改/etc/目录下的文件对所有用户有效。
修改完成,查看结果
//客户端
[root@dbserver ~]# echo $NLS_LANG
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
[root@dbserver ~]#
//服务器端
[oracle@dbserver ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期四 7月 23 18:36:16 2015 Copyright (c) 1982, 2009, Oracle. All rights reserved.
//看到中文的日期,说明客户端已经支持中文了
SQL> conn /as sysdba;
Connected to an idle instance.
SQL> startup;
ORACLE instance started. Total System Global Area 1586708480 bytes
Fixed Size 2213736 bytes
Variable Size 922749080 bytes
Database Buffers 654311424 bytes
Redo Buffers 7434240 bytes
Database mounted.
Database opened.
SQL> conn mms/mms
Connected.
SQL> select * from wang; ID NAME
---------- --------------------
2 称国内
4 网横
1 ??
SQL>
//修改成功,此处最后一行仍为乱码,这是因为最开始添加数据的时候客户端与服务器端不一致的原因,因此最好新添加一条数据来测试。
SQL> select userenv('language') from dual; USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK SQL>
//此时结果跟最初只修改服务器端编码时的结果不一样,个人认为是受客户端编码的影响
SQL> exit
本文参考了网络中的多篇文档,具体网址忘记了
RedHat安装Oracle后中文乱码的更多相关文章
- kali linux2019.4安装启动后中文乱码
1.鼠标右键找到黑框框打开终端 2.终端执行后重启,乱码解决. sudo apt-get install ttf-wqy-zenhei
- Oracle 12c中文乱码,修改字符集的方法
在windows 7 64位上安装Oracle 12c没有设定字符集,采用的是操作系统默认字符集:WE8MSWIN1252,将字符集修改为:ZHS16GBK.由于过程不可逆,首先需要备份数据库. 1. ...
- Oracle导入中文乱码解决办法
Oracle导入中文乱码解决办法 一.确保各个客户端字符集的编码同服务器字符集编码一致 1- 确定sqlplus字符集编码,如果是windows设置环境变量. 2- 确保Sec ...
- 安装Oracle后修改IP总结(转载)
转载自:http://blog.csdn.net/bleibo/article/details/5447198 安装Oracle后修改IP总结(转载) 针对ORACLE 10G 在安装完后,修改IP ...
- linux 成功安装oracle后,为其创建一个登录账户
成功安装oracle后,创建一个登录账户 1.切换到oracle用户下 su -l oracle 2.使用sysdba账户登录: sqlplus / as sysdba 3.创建用户 语法:CREAT ...
- 安装好centOS5.5 后中文乱码
1.网页浏览的中文乱码 [root@localhost ~]# yum install fonts-chinese 下载完毕后,浏览器可以浏览中文网页. 2.应用显示中文乱码 #vi /etc/sys ...
- oracle 11g中文乱码解决的办法一
oracle中文乱码解决的办法 正常安装完oracle客户端后,插入数据时,发现中文都是问号. PLL/SQL中输入select userenv('LANGUAGE') From Dual,结果为AM ...
- [oracle]解决centos 7下oracle的中文乱码问题
首先在形成中文乱码的原因是由于字符集不统一导致的,不同的字符集在转换的过程中必然要出现乱码,当然不排除可以转换.所以要解决中文乱码问题,思路是将输入.存储.显示等流程中涉及到字符集都统一为一种,对于o ...
- PL/sql developer连接数据库的问题以及oracle数据库中文乱码的问题
今天第二次配置PL/sql developer,表示很蛋疼,昨天因为动了一个东西然后莫名其妙的就再也连接不了数据库,总是显示各种错误,我动的东西是因为中文会显示乱码,(因为我是用32位的PL/sql ...
随机推荐
- 出租WiFi到底靠不靠谱?
创业是一种心态,也是不断的探索,他融入我们的生活,从日常中积累,从小微处启航. 一.背景交代 最近在换工作,本周搬到新租的单身公寓,空间不大,倒是干净整洁.委托租房中介帮忙开通宽带,告知是电信网最低开 ...
- OC extern和函数
#include <stdio.h> // 定义一个one函数 // 完整地定义一个外部函数需要extern关键字 //extern void one() { // printf(&quo ...
- c++11之为什么C++11引入了std::ref?
C++本身有引用(&),为什么C++11又引入了std::ref? 主要是考虑函数式编程(如std::bind)在使用时,是对参数直接拷贝,而不是引用.如下例子: #include <f ...
- javascript DOM 操作基础知识小结
经常用到javascript对dom,喜欢这方便的朋友也很多,要想更好的对dom进行操作,这些基础一定要知道的. DOM添加元素,使用节点属性 <!DOCTYPE html PUBLIC ...
- 【luogu P4231 三步必杀】 题解
题目链接:https://www.luogu.org/problemnew/show/P4231 诶 我很迷啊..这跟树状数组有什么关系啊...拿二阶差分数组过了..? #include <cs ...
- Android学习笔记_55_Tween动画 (渐变、缩放、位移、旋转)
Android 平台提供了两类动画. 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变).第二类就是 Frame动画,即顺序的播放事先做好的图像,与gi ...
- CodeForces - 598A Tricky Sum (数学,快速幂的运用)
传送门: http://codeforces.com/problemset/problem/598/A A. Tricky Sum time limit per test 1 second memor ...
- Zookeeper入门开发demo
package CreateGroup; import java.io.IOException; import java.util.List; import java.util.concurrent. ...
- Angularjs 数据过滤
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- 【转】opatch学习
[转自:https://yq.aliyun.com/articles/28007,仅作学习用途] Opatch 是oracle公司开发的安装,卸载,检测patch冲突的工具,管理oracle所有已经安 ...