【请问】plsql的提示信息出现中文乱码,注意,不是数据出现乱码,如何解决?

HeBanBei 2016-04-05 06:35:08

本来应该是 ORA-00900: 无效的 sql 语句
结果它却是 ORA-00900: 鏃犳晥 SQL 璇彞

注意,不是查询出来的数据出现乱码。

下面介绍一些背景:

select * from nls_session_parameters
结果第一行是 NLS_LANGUAGE SIMPLIFIED CHINESE

select userenv('language') from dual;
结果是 SIMPLIFIED CHINESE_CHINA.AL32UTF8

我在启动 plsql 之前 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8


【请问】如何解决以上plsql提示信息出现的中文乱码?
...全文
16748 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
悬呵呵 2018-08-23
  • 打赏
  • 举报
回复
引用 15 楼 a1924003499 的回复:
[quote=引用 9 楼 HeBanBei 的回复:]
[quote=引用 6 楼 zzklovehrr 的回复:]
百度一下,去注册表设置一下字符集就好了。


我现在的情况是,有两个数据库服务端,一个是utf8,另一个是gbk。
所以,在打开plsql之前,先 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8
或 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

如果修改注册表,那么总有一个数据库服务端访问会出现乱码[/quote]这个方法可以!非常好![/quote]回复错了。。
悬呵呵 2018-08-23
  • 打赏
  • 举报
回复
引用 13 楼 pagedown_002 的回复:
[quote=引用 12 楼 yxgmagic 的回复:]
博主解决了吗?是哪里的问题望告知,我的显示提示信息乱码.


select * from nls_database_parameters查看数据库的字符集配置,客户端配置成一样的即可
如果数据库配置的AMERICAN_AMERICA.AL32UTF8,客户端配置成SIMPLIFIED CHINESE_CHINA.AL32UTF8,就会出现乱码问题,估计你和博主都是这种情况
[/quote]这个方法可以!非常好!
悬呵呵 2018-08-23
  • 打赏
  • 举报
回复
引用 9 楼 HeBanBei 的回复:
[quote=引用 6 楼 zzklovehrr 的回复:]
百度一下,去注册表设置一下字符集就好了。


我现在的情况是,有两个数据库服务端,一个是utf8,另一个是gbk。
所以,在打开plsql之前,先 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8
或 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

如果修改注册表,那么总有一个数据库服务端访问会出现乱码[/quote]这个方法可以!非常好!
Clear2018 2018-04-10
  • 打赏
  • 举报
回复
引用 1 楼 zy18755122285 的回复:
1、V$NLS_PARAMETERS 为了显示中文,NLS_LANGUAGE应该为SIMPLIFIED CHINESE 2、进入注册表查看语言 在电脑“开始”菜单里找到“运行”,然后在对话框里输入“regedit”就能打开电脑注册表了。依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1,找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。 3、系统下的环境变量设置 变量名:NLS_LANG 变量值设为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 退出PLSQL Developer,重新登录 再次执行模拟报错,看到错误提示信息已经显示为中文
数据库的字符集是UTF-8,pl/sql的字符集是GBK,启动时就会报警告信息, 警告,数据库字符集(utf-8)与客户端(GBK)字符集不一致,可能会引起不可控的错误。
pagedown_002 2017-11-07
  • 打赏
  • 举报
回复
引用 12 楼 yxgmagic 的回复:
博主解决了吗?是哪里的问题望告知,我的显示提示信息乱码.
select * from nls_database_parameters查看数据库的字符集配置,客户端配置成一样的即可 如果数据库配置的AMERICAN_AMERICA.AL32UTF8,客户端配置成SIMPLIFIED CHINESE_CHINA.AL32UTF8,就会出现乱码问题,估计你和博主都是这种情况
yxgmagic 2017-10-23
  • 打赏
  • 举报
回复
博主解决了吗?是哪里的问题望告知,我的显示提示信息乱码.
sinat_37631831 2017-04-11
  • 打赏
  • 举报
回复
博主解决了吗?是哪里的问题望告知
jaliey 2017-01-31
  • 打赏
  • 举报
回复
影响提示信息的是字符集设置中NLS_LANG = language_territory.charset 的第一部分
HeBanBei 2016-04-11
  • 打赏
  • 举报
回复
引用 6 楼 zzklovehrr 的回复:
百度一下,去注册表设置一下字符集就好了。
我现在的情况是,有两个数据库服务端,一个是utf8,另一个是gbk。 所以,在打开plsql之前,先 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8 或 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 如果修改注册表,那么总有一个数据库服务端访问会出现乱码
HeBanBei 2016-04-11
  • 打赏
  • 举报
回复
引用 7 楼 a275838263 的回复:
你设置这里试试看。
试了,不行。
寡丶人 2016-04-07
  • 打赏
  • 举报
回复
你设置这里试试看。
zkzhong 2016-04-06
  • 打赏
  • 举报
回复
百度一下,去注册表设置一下字符集就好了。
bo871747022 2016-04-06
  • 打赏
  • 举报
回复
应该是跟UTF8有关,我用16GBK没问题。
HeBanBei 2016-04-06
  • 打赏
  • 举报
回复
引用 2 楼 a275838263 的回复:
1、按照楼上的方法修改系统的字符集 2、要是没有解决问题,这就可能和你的pl/sql版本有关系了。换一个版本高一点的pl/sql。
对不起,之前有一点忘了说了。 SQL 窗口里的中文没有问题。 Command 窗口里的中文有问题。
HeBanBei 2016-04-06
  • 打赏
  • 举报
回复
引用 1 楼 zy18755122285 的回复:
1、V$NLS_PARAMETERS
对不起,之前有一点忘了说了。 SQL 窗口里的中文没有问题。 Command 窗口里的中文有问题。
寡丶人 2016-04-05
  • 打赏
  • 举报
回复
1、按照楼上的方法修改系统的字符集 2、要是没有解决问题,这就可能和你的pl/sql版本有关系了。换一个版本高一点的pl/sql。
zy18755122285 2016-04-05
  • 打赏
  • 举报
回复
1、V$NLS_PARAMETERS 为了显示中文,NLS_LANGUAGE应该为SIMPLIFIED CHINESE 2、进入注册表查看语言 在电脑“开始”菜单里找到“运行”,然后在对话框里输入“regedit”就能打开电脑注册表了。依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1,找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。 3、系统下的环境变量设置 变量名:NLS_LANG 变量值设为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 退出PLSQL Developer,重新登录 再次执行模拟报错,看到错误提示信息已经显示为中文

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧