关于Oracle数据类型varchar2排序的解决方案

今天遇到一个关于Oracle varchar2的排序问题:

我现在的项目是个集成型客服系统,需要与多个外部系统进行交互。有一个外部系统供给我们系统的一个排序字段是varchar2类型。DBA通过物化视图刷新到我们自己的数据库表中,因为没有及时沟通,也做了同样类型映射。

在测试环节,因为外部系统没有提供足够的数据供我们测试,导致问题没有测试出来。

发布生产环境后,发现排序按照字符串:

1

10

11

2

21

扫描二维码关注公众号,回复: 1400296 查看本文章

22

3

这种方式不是BA想要的。但是又不能紧急发布,用户也不答应放在下次发布。

最后,通过思考,我给出如下方案:

在物化视图刷新数据时,做如下映射关系

排序源数据      排序映射数
1-9 a1-a9
10-99 b10-b99
100-999 c100-c999
1000-9999 d1000-d9999
…… ……

猜你喜欢

转载自fanjf.iteye.com/blog/1471391
今日推荐