Oracle数据库中使用的当前ID字段是10位数字。我的业务要求这个id是9个字符,而不是10个字符。我想考虑把这个ID转换成字母数字,这样我就可以把现有的10位IDS 1到1映射到9个字符长的新字母数字值。
Oracle(甚至Oracle Oracle)中是否存在一个现有的特性,即将所有数值转换为字母数字,还将其从X字符缩小到X-1,而没有任何映射“冲突”?
我还要补充的是,一旦我完成了这个转换,我也希望能够生成遵循这个新格式的新id。
考虑到切换到字母数字将给我的“空间”,所有当前的10位数字都将放入5个字母数字字符的空间所以我想我只是把0000印在5个字母数字字符的前面。所以假设我的“最高”映射ID值是“ZZZZ”,然后我会在前面扑通一声“0000”,使其成为“0000zzzz”我生成的下一个号码id是“0001zzzzz”。

最佳答案

最简单的方法是将其从十进制转换为十六进制。任何10位十进制数都可以表示为9位十六进制数。

关于algorithm - 如何将一组唯一的数值转换为较短长度的一组唯一的字母数值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13636968/

10-11 04:54