oracle 用Sqlplus连接的时候中文出现乱码
1、按win+R键调出windows运行窗口,并在窗口中输入“cmd”以便进入命令行程序。
2、在cmd命令行下输入“sqlplus用户名/密码@服务名”来登录数据库,其中用户名,密码,服务名需要根据实际情况进行替换。
登陆完成后,会发现提示语并不是中午,或者包含有乱码,在sqlplus中,selectuserenv('language')fromdual;查看当前数据库的字符集。
为:SIMPLIFIEDCHINESE_CHINA.ZHS16GBK。需要把客户端字符集和操作系统字符集都设置成这个就行了。
3、首先设置客户端字符集,右击我的电脑,选择属性。
4、在弹出的“属性”对话框中,选择“高级”->“环境变量”。
5、在环境变量中查找一个名为“NLS_LANG”的环境变量,如果找不到,则新建一个。
把变量值赋值为:“SIMPLIFIEDCHINESE_CHINA.ZHS16GBK”(需要根据实际数据库服务器字符集进行赋值)。客户端字符集设置成功。
6、在开始菜单中选择“控制面板”-“区域和语言选项”,在该选项下对计算机语言进行设置。
7、在“高级”选项下,选择“非Unicode程序的语言”为中文,同时点击确定。
点击确定后会提示安装字符集同时提示需要重启计算机才能生效,重启吧。
8、重启完成后,再次进入sqlplus,发现中文乱码问题解决。
你可以sqlplus 后,select userenv('language') from dual 执行这条sql语句,查看字符集编码是不是ZHS16GBK ,该编码支持中文,若不是该编码就要调整oracle字符集编码了。
第一步:查看 NLS_LANG 的方法
echo %NLS_LANG%
如:
E:\>echo %NLS_LANG%
AMERICAN_AMERICA.ZHS16GBK
第二步:查看数据库当前字符集参数设置
SELECT * FROM v$nls_parameters;
或
select * from nls_database_parameters
或
select userenv(‘language’) from dual;
第三步: 查看数据库可用字符集参数设置
SELECT * FROM v$nls_valid_values;
第四步: 客户端 NLS_LANG 的设置方法
# 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8