oracle数据库查询时出现乱码,很可能是该数据库的字符集设定不支持中文,但是表中数据含有中文,所以变为乱码。
如果是字符集原因,解决方法如下:
1、shutdown immediate; 关闭数据库
2、startup mount; 开启数据库至挂载模式(只挂实例,不启动数据库)
3、alter system enable restricted session;开启会话限制
4、alter system set aq_tm_processes=0;修改系统参数
5、alter system set job_queue_processes=0;修改系统参数
6、alter database open;启动数据库为open
7、alter database national character set internal_user (zhs16gbk);修改字符集
8、alter system disable restricted session;关闭会话限制
括号内可填写字符集类型,zhs16gbk、AL32UTF8等字符集都支持中文。
首先,检查DB中字符集,可以通过以下的SQL来查得,
SELECT FROM v$nls_parameters;或者
SELECT USERENV ('language') FROM DUAL;比如查询结果:
SIMPLIFIED CHINESE_CHINAZHS16GBK
那么字符集就是:ZHS16GBK;
然后设置客户端的本地字符集:
注册表:
默认情况下,windows上的Oracle安装使用注册表来定义这个设置。
版本 10g 及以上:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<oracle_home_name>
这里您会看到一个条目名为NLS_LANG
在64位windows平台上安装32位软件,会使用32位兼容性路径
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_<oracle_home_name>
或者环境变量:'我的电脑' -> '属性' > '高级' -> '环境变量'
增加一个:nls_lang = SIMPLIFIED CHINESE_CHINAZHS16GBK
重启一下机器就可以了。
以上就是关于如何解决oracle数据库查询时出现乱码问题全部的内容,包括:如何解决oracle数据库查询时出现乱码问题、oracle 插入中文查询显示乱码,问号是什么原因、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)