免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2695 | 回复: 8
打印 上一主题 下一主题

sybase12.5一个中文的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-17 11:37 |只看该作者 |倒序浏览
我把一个数据库从12.5.2(windows 32)迁移到12.5.4(linux 64),在迁移过程中数据都bcp过去了。两者的字符集都是cp850。
在linux上查询其中一个表test(select * from test where authword='阿'),出来的结果竟是这样

TypeNo AuthWord AuthNo Notes
1          阿   
1          班   
2          阿   
2          班   
4          阿   
4          班

在windows上查询的结果就很正常,如下:
TypeNo AuthWord AuthNo Notes
1          阿   
2          阿   
4          阿   

请问这是字符原因造成的吗?

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2011-10-17 12:19 |只看该作者
linux上用-Jcp850再试试

论坛徽章:
0
3 [报告]
发表于 2011-10-17 12:32 |只看该作者
加了-Jcp850后查询还是一样

论坛徽章:
0
4 [报告]
发表于 2011-10-17 12:36 |只看该作者
两者的helpsort结果如下:
windows :Sort Order Description

------------------------------------------------------------------
Character Set = 2, cp850
     Code Page 850 (Multilingual) character set.
Sort Order = 42, nocase_cp850
     Case-insensitive dictionary sort order for use with several We
     stern-European languages including English, French, and German
     .  Uses the Code Page 850 character set.
Characters, in Order

linux: Sort Order Description

------------------------------------------------------------------
Character Set = 2, cp850
     Code Page 850 (Multilingual) character set.
Sort Order = 42, nocase_cp850
     Case-insensitive dictionary sort order for use with several We
     stern-European languages including English, French, and German
     .  Uses the Code Page 850 character set.
Characters, in Order

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
5 [报告]
发表于 2011-10-17 16:37 |只看该作者
估计和排序顺序nocase_cp850有关。 改成bin_cp850应该不存在类似的问题。

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
6 [报告]
发表于 2011-10-17 16:47 |只看该作者
不过cp850本身就有问题,8年前测试新产品时就碰上过,时间隔得太久记不得了,只记得cp850字库本身就有错误,而那时候又没有cp936和gb18030,最后只好使用了iso_1。

论坛徽章:
0
7 [报告]
发表于 2011-10-17 16:58 |只看该作者
我现在暂时找到一种解决的方法。就是把linux的Sort Order改为bin_cp850,这样服务器就区分大小写了,查询的结果也就正确了。
但是为什么windows上没有区分大小写就没有影响呢?

希望大神们帮忙看看原因是什么啊?

论坛徽章:
0
8 [报告]
发表于 2011-10-18 09:09 |只看该作者
本帖最后由 pinkscut 于 2011-10-18 09:13 编辑

改为区分大小写后,有好多存储过程需要修改啊。。。
请问有其他办法解决吗?

论坛徽章:
0
9 [报告]
发表于 2011-10-18 11:46 |只看该作者
在charsets/cp850下有一个nocase34.srt,我安装了这个字符后,使用这个作为sortorder后,上面出现的问题解决了,也没有区分大小写。
暂时就先这样解决了
多谢两位大仙的指点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP