Oracle机器整数数据类型

时间:2011-06-21 07:30:53

标签: sql oracle

Oracle中是否有一个数据类型,我可以在一个表机器整数中使用?我只是想将它用作唯一标识符,我不需要列可以为空。

我注意到INTEGER数据类型映射到NUMBER(38),超过20个字节。

2 个答案:

答案 0 :(得分:2)

Oracle目前没有数据类型存储为机器整数(C int?)。 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个字节。

答案 1 :(得分:0)

Universal Unique Identifier (UUID)怎么样?

CREATE table test 
(
    colguid RAW(16) default SYS_GUID() 
)