如何解决oracle数据库查询时出现乱码问题

如何解决oracle数据库查询时出现乱码问题,第1张

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 插入中文查询显示乱码,问号是什么原因、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/10203001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存