今天遇到一个关于Oracle varchar2的排序问题:
我现在的项目是个集成型客服系统,需要与多个外部系统进行交互。有一个外部系统供给我们系统的一个排序字段是varchar2类型。DBA通过物化视图刷新到我们自己的数据库表中,因为没有及时沟通,也做了同样类型映射。
在测试环节,因为外部系统没有提供足够的数据供我们测试,导致问题没有测试出来。
发布生产环境后,发现排序按照字符串:
1
10
11
2
21
22
3
这种方式不是BA想要的。但是又不能紧急发布,用户也不答应放在下次发布。
最后,通过思考,我给出如下方案:
www.2cto.com
在物化视图刷新数据时,做如下映射关系
排序源数据 排序映射数
1-9 a1-a9
10-99 b10-b99
100-999 c100-c999
1000-9999 d1000-d9999
…… ……
oracle账号
作者 fanjf