2011-06-21 77 views
0

Oracle中有一個數據類型,我可以在一個表是一個機器整數?我只是想使用它作爲唯一的標識符,我不需要列可以爲空。Oracle機器整數數據類型

我注意到INTEGER數據類型映射到NUMBER(38)這是超過20個字節。

回答

2

目前Oracle中沒有數據類型將被存儲爲一個整數(C int?)。甲骨文號碼被存儲爲字節的可變長度字符串:

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個字節。