PL/SQL查询结果汉字显示为‘?’的问题

悬崖跳舞被人砍 2016-08-09 09:20:40
今天在使用PL/SQL连接服务器进行查询操作的时候,发现查询结果中汉字变成了‘?’。
这是第一次遇到这种情况,而且更加奇怪的是,不加order by就是正常汉字,加上order by就会变成‘?’。
具体查询语句与结果如下二图显示:


在该PL/SQL连接服务器的情况下,执行
select userenv('language') from dual

来查询字符集,结果是[SIMPLIFIED CHINESE_CHINA.ZHS16GBK]。似乎并无不妥。
查看了自己电脑的注册表,NLS_LANG的值也是这个。已经尝试添加过系统变量,但是并不能解决。
求教
...全文
625 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhdz_bj 2016-09-13
  • 打赏
  • 举报
回复
表里的数据本来就有乱码,和PL/SQL没关系。 另外,根据楼主的描述,可能是从原库通过OGG复制数据的过程中出现的问题。 还是看看两边库的字符集是否一致。
sinat_35847245 2016-08-11
  • 打赏
  • 举报
回复
你肯定是在64位数据库上又安装的32位的oracle客户端造成的
卖水果的net 2016-08-09
  • 打赏
  • 举报
回复
引用 2 楼 kingofluo 的回复:
[quote=引用 1 楼 wmxcn2000 的回复:] 很明显,这显示的不是同一组数据 ; 你把所有数据都展开看看,肯定是?的还是?,是汉字的还是汉字;
不是的,全部展开了,是汉字的全部是汉字,是问号的全部是问号。另外,这个表里的数据是使用goldengate从另一个oracle库里面导入的。在原库里面查询是正常的,不管怎么查都是汉字。但在这个库里就不同了。[/quote] 这具跟有无 order by 没有关系,你要检查一下你的 OGG 的配置了;
ghx287524027 2016-08-09
  • 打赏
  • 举报
回复
你加上order by 之后查询出来的结果集都不一样了。。。。
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
很明显,这显示的不是同一组数据 ; 你把所有数据都展开看看,肯定是?的还是?,是汉字的还是汉字;
不是的,全部展开了,是汉字的全部是汉字,是问号的全部是问号。另外,这个表里的数据是使用goldengate从另一个oracle库里面导入的。在原库里面查询是正常的,不管怎么查都是汉字。但在这个库里就不同了。
卖水果的net 2016-08-09
  • 打赏
  • 举报
回复
很明显,这显示的不是同一组数据 ; 你把所有数据都展开看看,肯定是?的还是?,是汉字的还是汉字;

17,377

社区成员

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

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