Oracle データベースで現在使用されている ID フィールドは 10 桁の数字です。この ID を 10 文字ではなく 9 文字にするというビジネス要件があります。この ID を英数字に変換して、既存の 10 桁の ID を 9 文字の長さの新しい英数字の値に 1 対 1 でマッピングできるようにすることを検討したいと考えています。 .
これを行う既存の機能が Oracle に (または Oracle の外部にさえ) ありますか。つまり、すべての数値を英数字に変換するだけでなく、X 文字から X-1 に「縮小」し、マッピングの「衝突」を持たない機能はありますか?
また、この変換を行ったら、この新しい形式に従う新しい ID を生成できるようにしたいことも付け加えておく必要があります。
英数字に切り替えることで得られる「余地」の量を考えると、現在の 10 桁の数字はすべて、5 文字の英数字のスペースに収まります。そのため、5 つの英数字の前に 0000 を付けるだけでよいと考えています。したがって、「最高」のマップ ID 値が「ZZZZ」であるとすると、「0000」を前に付けて「0000ZZZZZ」にします。次に生成する番号 ID は「0001ZZZZZ」です。