algorithm - 如何将一组唯一的数值转换为一组较短长度的唯一字母数值?

标签 algorithm oracle

我的 Oracle 数据库中当前使用的 ID 字段是 10 位数字。我的业务要求是此 ID 为 9 个字符而不是 10 个字符。我想考虑将此 ID 转换为字母数字,以便我可以将现有 10 位数字 ID 1 对 1 映射到 9 个字符长的新字母数字值.

Oracle 中(甚至 Oracle 之外)是否有现有功能可以执行此操作,即将所有数字值转换为字母数字,同时还将其从 X 个字符“缩小”为 X-1,并且没有任何映射“冲突”?

我还应该补充一点,一旦完成此转换,我还希望能够生成遵循此新格式的新 ID。

考虑到切换到字母数字会给我带来的“空间”量,所有当前的 10 位数字都适合 5 个字母数字字符的空间。所以我想我只是在 5 个字母数字字符的前面添加 0000 。因此,假设我的“最高”映射 ID 值为“ZZZZ”,那么我会将“0000”放在前面,使其成为“0000ZZZZZ”。我生成的下一个数字 ID 是“0001ZZZZZ”。

最佳答案

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

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

相关文章:

algorithm - 是否有可能在 O(n) 时间内找到差值最小的两个数

sql - 同一请求中的多个外部连接

sql - 在 Oracle DBMS 中使用单个 SQL 查询更新多行

python - Kevin Bacon 游戏的最短路径图遍历

algorithm - 数组的最长递增数子序列

c - 为什么只有少量线程启动?

algorithm - 查找矩阵子矩阵的最有效方法 [matlab]

RODBC::sqlSave() 创建表,警告:列中被截断为 255 字节?

通过C连接oracle DB

database - TKProf 输出 : SQL*Net message from client