マシンの整数であるテーブルにOracleのデータ型がありますか?私は一意の識別子としてこれを使用したいだけで、カラムをnullにする必要はありません。Oracleマシンの整数データ型
INTEGER
のデータ型がNUMBER(38)
(20バイトを超える)にマップされています。
マシンの整数であるテーブルにOracleのデータ型がありますか?私は一意の識別子としてこれを使用したいだけで、カラムをnullにする必要はありません。Oracleマシンの整数データ型
INTEGER
のデータ型がNUMBER(38)
(20バイトを超える)にマップされています。
Universal Unique Identifier (UUID)についてはどうですか?
CREATE table test
(
colguid RAW(16) default SYS_GUID()
)
現在、マシンの整数(C int?)として格納されるデータ型はOracleではありません。 Oracleの数値は、可変長のバイト列として格納されます。
SQL> SELECT DUMP(99), DUMP(999999), DUMP(9999.99) FROM dual;
DUMP(99) DUMP(999999) DUMP(9999.99)
-------------------- ---------------------------- ----------------------------
Typ=2 Len=2: 193,100 Typ=2 Len=4: 195,100,100,100 Typ=2 Len=4: 194,100,100,100
最初のバイトには縮尺が格納され、その他のバイトには数値のベース100が格納されます。
この保存方法ではいくらかの領域が失われますが、最終的にはオーバーヘッドが目立たなくなります。
識別子が100億未満の列の場合、NUMBER(10)は6バイトまで使用できます。
私はそう思っていますが、実際にはここで32ビットしか必要ありません。 40億は十分です。 – Clinton