plsql只有注释显示问号,其余中文可以正常显示

wade3355 2015-01-28 10:35:32




已经试过很多方法,改系统变量什么都已经试过了。
...全文
14221 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
八戒爱编程 2017-08-25
  • 打赏
  • 举报
回复
引用 12 楼 zy18755122285 的回复:
厉害了,老铁.....................
zy18755122285 2016-03-04
  • 打赏
  • 举报
回复
zx869268823 2015-05-13
  • 打赏
  • 举报
回复
遇到相同的问题,楼主,您是怎么解决的呢?求解
wangqi_521_csdn 2015-02-01
  • 打赏
  • 举报
回复
引用 2 楼 oldbie 的回复:
这个应该就是ORACLE字符集不是中文的问题啊,你确定你改了字符集和WINDOWS的变量之后还是这样? 你用的是ORACLE哪个版本? 注册表中的HKEY_LOCAL_MACHINE--->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1(不同版本的Oracle显示的都不太一样,但都会包含home这个单词),找到“NLS_LANG”,查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK” 喃?
+1 这个是正解
binsweet 2015-01-28
  • 打赏
  • 举报
回复
是数据库中本身存储的就是乱码,还是查询后显示乱码??? cmd 命令行下进sqlplus 查看表中数据的中文是否乱码,如果不乱码,就是你用的工具本身问题,而不是数据库问题,先把这个分清楚
瞎哥 2015-01-28
  • 打赏
  • 举报
回复
这个应该就是ORACLE字符集不是中文的问题啊,你确定你改了字符集和WINDOWS的变量之后还是这样? 你用的是ORACLE哪个版本? 注册表中的HKEY_LOCAL_MACHINE--->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1(不同版本的Oracle显示的都不太一样,但都会包含home这个单词),找到“NLS_LANG”,查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK” 喃?
wade3355 2015-01-28
  • 打赏
  • 举报
回复
来个人啊,挺急的。。。
小灰狼W 2015-01-28
  • 打赏
  • 举报
回复
引用 7 楼 wade3355 的回复:
[quote=引用 5 楼 wildwave 的回复:] 字符集问题 在这种情况下,查询的字段里含有中文的,应该也不能正常显示 SELECT VALUE FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET' 查看数据库的字符集 然后将本地的字符集改成一致的。(通过环境变量nls_lang或在注册表中修改)
查询的字段可以正常显示,仅仅是注释显示问号。nls_lang中都是SIMPLIFIED CHINESE_CHINA.ZHS16GBK[/quote] 注释其实也是从数据字典中查询的 SELECT t.column_name,t.comments FROM user_col_comments t WHERE t.table_name='大写表名' 执行试试。如果其他表中的中文正常显示,而只有这里的查询结果中文显示异常。就说明是备注时由于字符集转换而产生乱码,需要重新备注
wade3355 2015-01-28
  • 打赏
  • 举报
回复
引用 2 楼 oldbie 的回复:
这个应该就是ORACLE字符集不是中文的问题啊,你确定你改了字符集和WINDOWS的变量之后还是这样? 你用的是ORACLE哪个版本? 注册表中的HKEY_LOCAL_MACHINE--->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1(不同版本的Oracle显示的都不太一样,但都会包含home这个单词),找到“NLS_LANG”,查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK” 喃?
是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,主要是只有注释显示问号,其余正常
wade3355 2015-01-28
  • 打赏
  • 举报
回复
引用 5 楼 wildwave 的回复:
字符集问题 在这种情况下,查询的字段里含有中文的,应该也不能正常显示 SELECT VALUE FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET' 查看数据库的字符集 然后将本地的字符集改成一致的。(通过环境变量nls_lang或在注册表中修改)
查询的字段可以正常显示,仅仅是注释显示问号。nls_lang中都是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
wade3355 2015-01-28
  • 打赏
  • 举报
回复
引用 3 楼 binsweet 的回复:
是数据库中本身存储的就是乱码,还是查询后显示乱码???
cmd 命令行下进sqlplus 查看表中数据的中文是否乱码,如果不乱码,就是你用的工具本身问题,而不是数据库问题,先把这个分清楚


在cmd中查看的注释也是乱码
小灰狼W 2015-01-28
  • 打赏
  • 举报
回复
字符集问题 在这种情况下,查询的字段里含有中文的,应该也不能正常显示 SELECT VALUE FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET' 查看数据库的字符集 然后将本地的字符集改成一致的。(通过环境变量nls_lang或在注册表中修改)
不写代码的钦 2015-01-28
  • 打赏
  • 举报
回复
应该执行第三步就可以把。 1.登陆plsql,执行sql语句,输出的中文标题显示成问号????;条件包含中文,则无数据输出 输入sql语句select * from V$NLS_PARAMETERS查看字符集,查看第一行value值是否为简体中文 2.进入注册表,依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->home(小编安装的是Oracle 11g,这里显示成KEY_OraDb11g_home1),找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 3. 如果以上设置都没有问题,那就要查看下环境变量的设置,查看是否有变量NLS_LANG,没有则新建该变量 新建变量,设置变量名:NLS_LANG,变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,确定即可 退出plsql,重新登陆plsql。输入sql语句,执行,中文标题终于正常显示,也有数据输出了

17,377

社区成员

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

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