
查找注册表
32位在:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ORACLE\HOMExx\NLS_LANG(这里是32位的应用程序在64位windows系统中,注册表位置在"WOW6432NODE"下。)64位在:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG(这里是64位的应用程序在64位windows系统中,注册表位置直接在"SOFTWARE"下。)所以修改客户端NLS_LANG需要看清注册表地址。切记。解决方法:将服务器的DB客户端的NLS_LANG改为SIMPLIFIED CHINESE_CHINAAL32UTF8将笔记本的DB客户端的NLS_LANG也改为SIMPLIFIED CHINESE_CHINAAL32UTF8这样笔记本DB客户端输入中文的时候,编码会转为AL32UTF8。服务器上客户端也能对应解码。如果将笔记本DB客户端NLS_LANG设置为ZHS16GBK。在编码转换显示的时候,就会出现乱码。
打开PLSQL
d出登陆界面,进去登陆
随便写了一个查询语句,发现显示有乱码
解决办法:
先查看oracle服务器端的字符编码是什么
配置一个环境变量就可以解决问题
变量名称:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINAZHS16GBK
按照下面图是
加好环境变量之后关闭PLSQL重新打开,写一个查询试试效果
如下图所示说明乱码问题解决。
可能是字符集不一致造成的,字符集有数据库字符集和客户端字符集,对你这种情况来说,导出和导入都要涉及,也就是说你要保证4个字符集都一致才行
exp时源数据库字符集,客户端字符集
imp时目标数据库字符集和客户端字符集
如果你就在数据库服务器上导出或者导入,那么你这机器既作为数据库服务器也做导入导出客户端
1、按win+R键调出windows运行窗口,并在窗口中输入“cmd”以便进入命令行程序。
2、在cmd命令行下输入“sqlplus用户名/密码@服务名”来登录数据库,其中用户名,密码,服务名需要根据实际情况进行替换。
登陆完成后,会发现提示语并不是中午,或者包含有乱码,在sqlplus中,selectuserenv('language')fromdual;查看当前数据库的字符集。
为:SIMPLIFIEDCHINESE_CHINAZHS16GBK。需要把客户端字符集和 *** 作系统字符集都设置成这个就行了。
3、首先设置客户端字符集,右击我的电脑,选择属性。
4、在d出的“属性”对话框中,选择“高级”->“环境变量”。
5、在环境变量中查找一个名为“NLS_LANG”的环境变量,如果找不到,则新建一个。
把变量值赋值为:“SIMPLIFIEDCHINESE_CHINAZHS16GBK”(需要根据实际数据库服务器字符集进行赋值)。客户端字符集设置成功。
6、在开始菜单中选择“控制面板”-“区域和语言选项”,在该选项下对计算机语言进行设置。
7、在“高级”选项下,选择“非Unicode程序的语言”为中文,同时点击确定。
点击确定后会提示安装字符集同时提示需要重启计算机才能生效,重启吧。
8、重启完成后,再次进入sqlplus,发现中文乱码问题解决。
你好,大多数都是字符集不一致导致的乱码问题。对于出现乱码或问号等不正常显示问题,根据数据库字符集,正确配置参数NLS_LANG,一般可以解决,如果仍出现乱码,则可能和所使用的工具的字体编码设置有关。
那么解决出现的乱码时应该依次检查:查看数据库和客户端字符集,主要设置NLS_LANG;查看系统语言设置LANG参数;查看所用终端、工具字体编码设置。
针对所出现的问题,查看plsql的字体编码为GB2312,CRT的字体编码是UTF-8,修改为GB2312,centos终端修改-终端设置-字符编码修改,乱码问题解决。
说明数据库不支持中文,修改为GBK或者Utf-8就可以了。
ALTER SYSTEM DISABLE RESTRICTED SESSION;改完编码后执行sql> conn / as sysdba;
sql> shutdown immediate;
database closed
database dismounted
oracle instance shut down
sql> startup mount;
oracle instance started
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted
sql> alter system enable restricted session;
system altered
sql> alter system set job_queue_processes=0;
system altered
sql> alter system set aq_tm_processes=0;
system altered
sql> alter database open;
database altered
sql> alter database character set internal_use UTF-8;
sql> shutdown immediate;
sql> startup;
查看数据库编码格式:select userenv('language') from dual;
如果数据库格式支持中文,那么就要看下执行的sql是不是本身就有乱码了。
以上就是关于oracle中文字乱码的问题全部的内容,包括:oracle中文字乱码的问题、plsql连接oracle数据库查询汉子显示乱码、导入oracle的数据有乱码怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)