Oracle乱码

来源:互联网 发布:手机淘宝评价管理 编辑:程序博客网 时间:2024/06/03 02:43

1、连接windows 2003的oracle 11g

C:\>sqlplus / as sysdba  SQL*Plus: Release 11.2.0.1.0 Production on 星期一 5月 21 15:03:29 2012  Copyright (c) 1982, 2010, Oracle.  All rights reserved.  连接到:  Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production  With the Partitioning, OLAP, Data Mining and Real Application Testing options  
2、查看客户端的字符集
SQL> select userenv('language') from dual;   USERENV('LANGUAGE')  ----------------------------------------------------  AMERICAN_AMERICA.ZHS16GBK  

3、查看服务端的字符集
SQL> set linesize 100  SQL> col parameter for a40  SQL> col value for a40  SQL> select * from nls_database_parameters where parameter like '%CHARACTERSET%%';   PARAMETER                VALUE  ---------------------------------------- ----------------------------------------  NLS_CHARACTERSET             ZHS16GBK  NLS_NCHAR_CHARACTERSET       AL16UTF16  

可以看到客户端与服务端的字符集都是一致的,均为ZHS16GBK。
4、创建dl_char表
SQL> create table dl_char (name varchar2(20));   表已创建。  

5、插入数据
SQL> insert into dl_char values ('字符集的乱码问题');   已创建 1 行。  

6、进行select查询
SQL> select * from dl_char;   NAME  --------------------  字符集的乱码问题  

可以看得,现在显示为我刚才输入的值
7、更改客户端的字符集
C:\>SET NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 

8、然后重新登录
C:\>sqlplus / as sysdba   SQL*Plus: Release 11.2.0.1.0 Production on Mon May 21 15:06:55 2012   Copyright (c) 1982, 2010, Oracle.  All rights reserved.    Connected to:  Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production  With the Partitioning, OLAP, Data Mining and Real Application Testing options  

9、查看客户端的字符集
SQL> select userenv('language') from dual;  USERENV('LANGUAGE')  ----------------------------------------------------  AMERICAN_AMERICA.ZHS16GBK  

可以看到客户端的字符集已经变为AMERICAN_AMERICA.ZHS16GBK了
10、然后查看dl_char的值
SQL> select * from dl_char;   NAME  --------------------  靠靠靠靠  


现在就出现了我前面说的4个靠字的问题,从上面的实验,可以看到产生4靠的原因为:客户端与服务端的字符集不一致,所以解决这个问题的方法就是在客户端设置与服务端一致的字符集


11、现在把客户端的字符集改成与服务端一致的字符集

C:\>SET NLS_LANG=ZHS16GBK 

12、然后登陆
C:\>sqlplus / as sysdba   SQL*Plus: Release 11.2.0.1.0 Production on 星期一 5月 21 15:13:11 2012   Copyright (c) 1982, 2010, Oracle.  All rights reserved.    连接到:  Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production  With the Partitioning, OLAP, Data Mining and Real Application Testing options  

13、查看客户端与服务端的字符集
SQL> select userenv('language') from dual;   USERENV('LANGUAGE')  ----------------------------------------------------  SIMPLIFIED CHINESE_CHINA.ZHS16GBK   SQL> select * from nls_database_parameters where parameter like '%CHARACTERSET%%';   PARAMETER                VALUE  ---------------------------------------- ----------------------------------------  NLS_CHARACTERSET             ZHS16GBK  NLS_NCHAR_CHARACTERSET       AL16UTF16  

14、现在客户端与服务端的字符集都一致了,在查看一下dl_char里的内容
SQL> select * from dl_char;   NAME  --------------------  字符集的乱码问题  

         现在显示为正常的,4个靠字也没用在出现,所以以后在做exp/imp导出/导入或者客户端查询数据等操作的时候,一定要把客户端的字符集与服务端的字符集设置为同一个。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 榴莲肉酸了吃了怎么办 亲戚赖在家里住怎么办 食堂饭菜味道差该怎么办 被监视居住公安打电话睡着了怎么办 鱼缺氧浮上水面怎么办 车载低音炮有电流声怎么办 925纯银变黑了怎么办 银子放久了变黑怎么办 高铁票网上售空怎么办 高铁票出票失败怎么办 高铁票名字打错怎么办 高铁票姓名错了怎么办 高铁票弄丢了怎么办 用过的车票丢了怎么办 高铁票被水洗了怎么办 沈阳地铁卡丢了怎么办 火车票没写检票口怎么办 吃鸡听的脚步声距离太近怎么办 检票时车票丢了怎么办 高铁出站没检票怎么办 高铁来不及取票怎么办 被发现假的增值税发票怎么办 高铁票身份证验证失败怎么办 网上订的火车票查不到怎么办 已经参加工作想学个本科证怎么办 火车晚点耽误下一趟列车怎么办 门外装监控没有预留电线怎么办 框架柱主筋柱顶预留长度不够怎么办 遇到很嚣张的人怎么办 在地板砖上铺木地板卧室门怎么办 宝宝打预防针的本子丢了怎么办 宝宝打预防针本子丢了怎么办 打疫苗的本子丢了怎么办 麦客收割机麦秸里加麦粒怎么办 高铁乘务员身高不够怎么办 坐火车买到站票怎么办 买上车补票原票怎么办? 买的商务座补票怎么办 12306账号被别人登录怎么办 飞机不提供餐食怎么办 12306退票支付宝失败怎么办