oracle 插入中文查询显示乱码,问号是啥原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 插入中文查询显示乱码,问号是啥原因相关的知识,希望对你有一定的参考价值。

首先,检查DB中字符集,可以通过以下的SQL来查得,

SELECT * FROM v$nls_parameters;

或者

SELECT USERENV ('language') FROM DUAL;

比如查询结果:

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

那么字符集就是: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_CHINA.ZHS16GBK


重启一下机器就可以了。

参考技术A 在网上查找了很多想多的帖子,大多数都是字符集不一致导致的乱码问题。对于出现乱码或问号等不正常显示问题,根据数据库字符集,正确配置参数NLS_LANG,一般可以解决,如果仍出现乱码,则可能和所使用的工具的字体编码设置有关。
那么解决出现的乱码时应该依次检查:查看数据库和客户端字符集,主要设置NLS_LANG;查看系统语言设置LANG参数;查看所用终端、工具字体编码设置。
查看plsql的字体编码为GB2312,CRT的字体编码是UTF-8,修改为GB2312,centos终端修改-终端设置-字符编码修改,乱码问题解决。

oracle数据库里中文显示不出来 全是问号

我用plsql打开图形界面客户端 表里的字段值只要是中文的全是?????
怎么办
而且出了异常 弹出框里也全是?????

在我的电脑上右键属性--高级系统设置--高级--环境变量,新建用户变量:
变量名:
变量值:
LANG=zh_CN.GBK
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
参考技术A 系统不是中文的是吗?
你的plsql是7一下的版本吧!~
我记得plsql8以上支持UTF-8。

以上是关于oracle 插入中文查询显示乱码,问号是啥原因的主要内容,如果未能解决你的问题,请参考以下文章

oracle wm_concat 拼接乱码 显示问号等

java插入中文到oracle变问号

在oracle数据库中插入的冷僻字都会变成问号,这个怎么解决。

Oracle数据库在plsql中文乱码,显示问号????

oracle数据库乱码问题,数据库无法插入中文,请路过的大神帮忙看看

PHP插入数据到数据库出中,中文出现乱码~~全是问号