0

タイプVARCHAR(3)のCODEという名前の主キーがあるテーブルがあります。問題は、000,001 .... 999 のすべての使用可能な値が異なるレコードで使用されていることです。フィールド CODE は varchar 形式であるため、数字とともにアルファベットを使用できます。

plsql に、アルファベットも含む長さ 3 の一意のキーを均一に生成できるアルゴリズムまたは関数はありますか。フィールド サイズは他の多くのテーブルで参照されているため、変更できないことに注意してください。

4

2 に答える 2

0

ほとんどの場合、フィールドを整数型に移行する必要があります。それが不可能な場合は、bpgergo が提案するように、より大きな char フィールドに変換できるはずです。

本当に 3 文字の制限に固執している場合は、次のように to_char(id, 'xxx') を使用して 16 進数に変換できます。 Oracle: Oracle SQL で 16 進数を 10 進数に変換するにはどうすればよいですか?

これにより、最大 4096 エントリが得られます。base64 (最大 262,144 エントリ) を使用することも、base 128 (2,097,152) まで使用することも (より複雑に) 可能であるべきです。データは印刷可能な文字 (16,777,216) です。

于 2013-11-12T11:12:19.990 に答える