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 ...
随机推荐
- IOS HTML+CSS+JS 总结
一.HTML + CSS 1.能看到标签的结构* 父子关系<p> <span>123</span></p> * 属性<img src=&qu ...
- 动态规划(DP),递推,最大子段和,POJ(2479,2593)
题目链接:http://poj.org/problem?id=2479 解题报告: 1.再求left[i]的时候,先没有考虑a[i]的正负,先把a[i]放到left[i]中,然后left=max(le ...
- luogu P1768 天路
嘟嘟嘟 01分数规划之最优比率环. 主要是发一下基于dfs的spfa.跑的贼快,原来总用时2000多ms还TLE了两个点,改成dfs后总用时直降43ms! #include<cstdio> ...
- PHP设计模式——适配器模式
<?php /** * 适配器模式 * 适配器模式是将某个对象的接口适配为另一个对象所期望的接口 * * 在需要转化一个对象的接口用于另一个对象时,最好实现适配器模式对象 */ class We ...
- IPv4和IPv6的兼容问题
一网络拓扑 Ipv6网络1 路由器A IPv4网络 路由器B IPv6网络2 二知识补充 [注]双协议栈主机(路由器A.B)通过域名解析器区分传过来的是IPv4还是IPv6 三处理技术 双协议栈 Ip ...
- [oracle]分区表学习
(一)什么是分区 所谓分区,就是将一张巨型表或巨型索引分成若干个独立的组成部分进行存储和管理,每一个相对小的,可独立管理的部分,称为分区. (二)分区的优势 提高数据可管理性.对表进行分区,数据的加载 ...
- SpringBoot学习15:springboot异常处理方式5(通过实现HandlerExceptionResolver类)
修改异常处理方式4中的全局异常处理controller package com.bjsxt.exception; import org.springframework.context.annotati ...
- Webpack4 学习笔记八 开发环境和生产环境配置
webpack resolve属性 webpack 区分开发环境和生产环境 webpack resolve属性 该选项的作用是设置模块如何被解析. resolve.alias: 设置别名, 在vue中 ...
- 基于layer封装的异步加载分部视图弹出层
背景:之前一直用的artdialog,但是样式不是很好看,后来偶然看到layer,觉得不错,但是对于.net mvc来说,不能像artdialog一样弹出分部视图是很难受的.所以下面的方法就解决了. ...
- Qt基于tcp协议网络编程
基于Qt网络编程: 基于tcp协议 c/s模式编程 所需要的类:QTcpServer QTcpSocket 利用qt基于tcp协议编写c/s模式程序: 两个类中的信号: QTcpServer : ne ...