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 options2、查看客户端的字符集
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
- oracle乱码
- oracle乱码
- oracle 乱码
- oracle 乱码
- oracle 乱码
- Oracle乱码
- oracle乱码
- oracle乱码
- oracle客户端乱码/ plsql乱码
- oracle 字符集乱码解决
- oracle中文字符集乱码
- Oracle 中文乱码问题
- Oracle 中文乱码问题
- Oracle中的乱码解决
- oracle 乱码解决
- Oracle 客户端乱码解决方案
- Oracle 中文乱码
- Oracle Linux中文乱码
- 2471 表达式的转换
- hdu1404
- Wins2003系统中Apache性能优化方法
- 如何导出树结构清晰的代码机构目录
- suse11 Linux系统下如何设置文件共享
- Oracle乱码
- 求二进制中1的个数
- Jump and Jump... HDU 5162
- CART分类与回归树的原理与实现
- Assembling Features Reading Features
- IOS中自动布局autoresizing
- 删除链表中的重复节点、剩余节点逆序输出
- CodeForces 514D R2D2 and Droid Army
- 编程之美3.3——类似——两个字符串的最长公共子序列(LCS)