本文摘自PHP中文网,作者hzc,侵删。
解解决oracle乱码的问题:是不是经常看见各式各样的乱码,看见头就大了,大家别怕,所有的问题都会有一个甚至不止一个的解决方案,
有句名言说的好:万法不离其踪。网上大部分把工具的乱码和代码操作的乱码混为一谈,方案看了一大堆都是一个粘贴一个的,没有一点创新,于是今天出这篇博客。
以下方案服务端字符集编码是:SIMPLIFIED CHINESE_CHINA.US7ASCII 测试ok,其他编码的可以参考
一.工具乱码:
使用PLSQL Developer查询或者编辑的时候出现??的时候:
原因:客户端机和服务器上的字符集不一致
解决:
先查询服务端的字符集编码,然后将客户端的修改一直即可;
1.查询服务的字符集:
2.通过工具查看客户端的字符集编码:
打开工具:help-support info


3.设置环境变量(系统环境变量):
1 | NLS_LANG=SIMPLIFIED CHINESE_CHINA.US7ASCII(设置的编码必须和服务端保持一致)
|
如果没有生效,建议重启电脑!
二.查询乱码:
设置两个:
1.修改环境变量:
1 | NLS_LANG=SIMPLIFIED CHINESE_CHINA.US7ASCII(设置的编码必须和服务端保持一致)
|
2.修改注册表:(为了保险起见,查找注册表中的NLS_LANG所有的,避免有多个)
1 | HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1
|

如果没有生效,建议重启电脑!
三.插入乱码:
解决中...
四.导入或导出乱码:
暂无
五.服务端修改编码:(此方案慎重使用)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | cmd
sqlplus/nolog
conn/ as sysdba;
shutdown immediate;
startup mount;
alter session set sql_trace= true ;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
alter database open ;
alter database character set ZHS16GBK;
alter database character set internal_use ZHS16GBK;
alter database national character set internal ZHS16GBK;(如果报错,可以不用理会)
shutdown immediate;
startup;
|
推荐教程: 《Oracle教程》
以上就是解决oracle乱码的问题的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
oracle数据库自带表空间的详细说明
关于mysql与oracle的一些区别介绍
oracle如何删除视图?
oracle的一些tips技巧
oracle dba常用语句第22页
c#调用oracle存储过程方法介绍(附源码)
oracle如何修改用户密码?
oracle常见错误诊断
oracle和mysql如何给表添加注释
oracle中plsql中if语句的写法介绍
更多相关阅读请进入《oracle》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 解决oracle乱码的问题