首先,检查DB中字符集,可以通过以下的SQL来查得,
或者
比如查询结果:
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
重启一下机器就可以了。
打开PLSQL
d出登陆界面,进去登陆
随便写了一个查询语句,发现显示有乱码
解决办法:
先查看oracle服务器端的字符编码是什么
配置一个环境变量就可以解决问题
变量名称:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINAZHS16GBK
按照下面图是
加好环境变量之后关闭PLSQL重新打开,写一个查询试试效果
如下图所示说明乱码问题解决。
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,发现中文乱码问题解决。
1首先通过SQL语句:select userenv('language') from dual;
查询出服务器端的编码,如我自己的查询结果为:
USERENV('LANGUAGE')
AMERICAN_AMERICAZHS16GBK
2添加环境变量NLS_LANG ,值为: AMERICAN_AMERICAZHS16GBK,由此即可解决该问题。这个问题我以前也遇到过。这是因为oracle不支持中文造成的。你可以先使用命令
export
LANG=en将环境临时换成英文,然后再安装。这个
环境变量
的修改只是临时的,重启后或者使用oracle
用户登录
时会自己换回来的。
希望对你有所帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)