Oracle数据库PLSQL的中文乱码显示全是问号

plsql连接数据库乱码问题

缘由: 

 小师妹周末叫我帮她重装数据库,这么大好的周末时光不出去玩儿,给她装数据库这不是很蛋疼么。

我问她为什么要重装,她说:数据存入数据库后,中文字符有乱码,一定是我上次给她安装数据库的时候

有问题。当初为了给她安装个数据库,可是费了九牛二虎之力,64位数据库,32位数据库客户端来回折腾了

两天才弄好,我可不想再重新给她弄。在网上找到了个解决方案,一下子就把乱码的问题解决了。

http://www.2cto.com/database/201407/313317.html

我的Oracle是11g版本的,下面以我的为例,为大家讲解下设置的过程。

步骤一

开始-运行-输入regedit-回车进入注册表,依次单击HKEY_LOCAL_MACHINE--->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1(不同版本的Oracle显示的都不太一样,但都会包含home这个单词),找到“NLS_LANG”,查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,如果不是就将它设置为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK。”

步骤二

设置完注册表后,接下来设置我们的环境变量,计算机(右键) --->属性--->高级系统设置--->高级--->环境变量--->新建,个人建议新建用户变量,变量名输入:“NLS_LANG”,变量值输入:“SIMPLIFIEDCHINESE_CHINA.ZHS16GBK”。点击确定即可,到此我们就设置完了。

 ********************************************************************************************************************************************************************************************************************************************************

下边是引用的另一个资料

这两天刚将PLSQL与Oracle配置好,可是在PLSQL中插入数据时,出现一个问题,PLSQL中的表里无法显示中文,中文无法保存、无法输出,中文在表中显示问号,如图:

\

 

原因

经过一番查证,发现问题的源头不是出现在PLSQL上,而是出现在我们的Oracle上,由于我们的Oracle数据库里的字符集不支持中文导致的,既然知道了原因,就好办了,我们就配置我们的Oracle字符集,让他支持中文。

解决办法

我的Oracle是11g版本的,下面以我的为例,为大家讲解下设置的过程。

步骤一

开始-运行-输入regedit-回车进入注册表,依次单击HKEY_LOCAL_MACHINE--->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1(不同版本的Oracle显示的都不太一样,但都会包含home这个单词),找到“NLS_LANG”,查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,如果不是就将它设置为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK。”

如图

\

 

步骤二

设置完注册表后,接下来设置我们的环境变量,计算机(右键) --->属性--->高级系统设置--->高级--->环境变量--->新建,个人建议新建用户变量,变量名输入:“NLS_LANG”,变量值输入:“SIMPLIFIEDCHINESE_CHINA.ZHS16GBK”。点击确定即可,到此我们就设置完了。

如图

\

 

效果

下面就看下我们的效果,关闭PLSQL,重新启动,中文果然出现了,

\

 

后记

环境变量让我们在开发中方便了很多,但是它也是好多问题的“万恶之源泉”,让人痛并快乐着的环境变量啊。

 

 

引用原文:http://www.2cto.com/database/201407/313317.html

     http://www.cnblogs.com/liflying/p/4538957.html

 

写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,文章可以转载,无需版权。希望尽自己的努力,做到更好,大家一起努力进步!

如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!

 

posted @ 2017-08-09 16:39  緈諨の約錠  阅读(1787)  评论(0编辑  收藏  举报
//用户复制动作发生0.1秒以后再去改粘贴板中的内容。100ms只是一个经常取值,写1000、10、50、200……都行。