oracle:编码问题,中文显示乱码,两个client
2012-04-03 17:24
363 查看
作者:A_zhu
sqlplus 、cmd连数据库,还是客户端经过服务器连数据库。都有编码的问题。
1。客户端的编码
2.会话(session )的编码
3.例子(instance)的编码
4.数据库的编码
查看方法:
1客户端:看regedit 中 的nls_lang
2.session :连接数据库(cmd 方式,同下) select *from nls_session_parameters;
3。instance :连接数据库select *from nls_instance_parameters;
4.database: 连接数据库 select*from nls_database_parameters;
解决方法:
连接数据库后,select userenv(‘language’)from dual; 可以查看当前会话的编码方式。
通过alter session set nls_lang=XXXXXXX 修改session ,再次运行 select userenv(‘language’)from dual;
可以看到会变化,但是这解决不了问题
如果有其他电脑可以查看成功,那直接连接数据库后select userenv(‘language’)from dual; 记为xxxxxxxxx,在自己电脑运行cmd 后,不要马上连接数据库,运行set nls_lang=xxxxxxxxxxxxxx; 然后再连数据库,问题通常会解决。必须要在运行cmd 后和连接数据库前set 了,试过断连再改不成功。
这样每次cmd 连数据库前都要set 一次。
想不这样可以直接修改regedit中的 nl_lang ;
这里有问题,因为我电脑装了两个client, 一个10g ,一个11g ,在oracle 目录下有一个 nls_lang ,在10g 的目录下也有一个nls_lang ,但是11g 的是没有的,发现两个都改了之后都不成功,这时!
看电脑的环境变量,path ,是11g 的路径在前还是10g 的路径在前,把10g 的路径放到11g 的前面。这就行了。11g有两个,10g 有1个。
另外嘛: instance 是指什么还没搞懂, 在连接数据库后 用 alter system set nls_language=‘xxxxxx’ 也能修改成功,好像就是修改instance 的,instance 难道是指本地数据库的?!暂时不懂。
通常下 中文的是 : SIMPLIFIED CHINESE_CHINA.ZHS16GBK
英文是:AMERICAN_AMERICA.ZHS16GBK
有其他编码。这里就不解释编码了。
regedit 中 :
oracle 下的 nls_lang:
10g 下的nls_lang :
环境变量 :
G:\database\bin;G:\database\product\11.2.0\client_1;G:\database\product\11.2.0\client_1\bin;
注:前一个是10gclinet, 后两个是11g的。
sqlplus 、cmd连数据库,还是客户端经过服务器连数据库。都有编码的问题。
1。客户端的编码
2.会话(session )的编码
3.例子(instance)的编码
4.数据库的编码
查看方法:
1客户端:看regedit 中 的nls_lang
2.session :连接数据库(cmd 方式,同下) select *from nls_session_parameters;
3。instance :连接数据库select *from nls_instance_parameters;
4.database: 连接数据库 select*from nls_database_parameters;
解决方法:
连接数据库后,select userenv(‘language’)from dual; 可以查看当前会话的编码方式。
通过alter session set nls_lang=XXXXXXX 修改session ,再次运行 select userenv(‘language’)from dual;
可以看到会变化,但是这解决不了问题
如果有其他电脑可以查看成功,那直接连接数据库后select userenv(‘language’)from dual; 记为xxxxxxxxx,在自己电脑运行cmd 后,不要马上连接数据库,运行set nls_lang=xxxxxxxxxxxxxx; 然后再连数据库,问题通常会解决。必须要在运行cmd 后和连接数据库前set 了,试过断连再改不成功。
这样每次cmd 连数据库前都要set 一次。
想不这样可以直接修改regedit中的 nl_lang ;
这里有问题,因为我电脑装了两个client, 一个10g ,一个11g ,在oracle 目录下有一个 nls_lang ,在10g 的目录下也有一个nls_lang ,但是11g 的是没有的,发现两个都改了之后都不成功,这时!
看电脑的环境变量,path ,是11g 的路径在前还是10g 的路径在前,把10g 的路径放到11g 的前面。这就行了。11g有两个,10g 有1个。
另外嘛: instance 是指什么还没搞懂, 在连接数据库后 用 alter system set nls_language=‘xxxxxx’ 也能修改成功,好像就是修改instance 的,instance 难道是指本地数据库的?!暂时不懂。
通常下 中文的是 : SIMPLIFIED CHINESE_CHINA.ZHS16GBK
英文是:AMERICAN_AMERICA.ZHS16GBK
有其他编码。这里就不解释编码了。
regedit 中 :
oracle 下的 nls_lang:
10g 下的nls_lang :
环境变量 :
G:\database\bin;G:\database\product\11.2.0\client_1;G:\database\product\11.2.0\client_1\bin;
注:前一个是10gclinet, 后两个是11g的。
相关文章推荐
- SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 和oracle 查询数据中文乱码问题
- Oracle - SQLPlus中文显示乱码问题
- JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题
- 使CentOS6.5中文本编辑器支持GB18030/GBK/GB2312 等类型的中文编码,解决中文显示乱码问题
- JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题
- eclipse编码格式全部正确,网页中文显示依旧乱码问题
- oracle sqlplus中文显示乱码的问题
- Mysql中文乱码问题完美解决方案【需要在my.cnf文件中设置client和mysqld的default-character-set=utf8,建数据库和表的时候也需要制定好编码】
- python中文编码问题深入分析(二):print打印中文异常及显示乱码问题分析与解决
- 解决如source insight等软件由于编码格式不一样出现中文乱码显示问题
- 【LaTeX 中文乱码,不能正常显示的解决方案,编码的常见问题和解决方案】
- php adodb 从mysql数据库中输出中文显示到utf编码网页乱码问题
- servlet从服务器磁盘文件读出到浏览器显示,中文乱码问题,不要忘记在输入流和输出流都要设置编码格式,否则一个地方没设置不统一就会各种乱码
- GB2312、GBK和UTF-8三种编码以及QT中文显示乱码问题
- erlang 中文编码显示乱码问题
- red hat下使用oracle instant client的occi接口读写数据库中文乱码问题
- Oracle_sqlplus中文显示乱码的问题的解决
- erlang 中文编码显示乱码问题
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- 连接mysql server 5.0 数据库的乱码问题,utf8编码,中文正确显示