gpt4 book ai didi

Oracle NUMBER(p) 存储大小?

转载 作者:行者123 更新时间:2023-12-01 22:41:53 25 4
gpt4 key购买 nike

我已经搜索过了,但找不到我的问题的结论性答案...

我需要知道Oracle中number(p)字段的存储大小是多少。

示例:NUMBER(1)、NUMBER(3)、NUMBER(8)、NUMBER(10) 等...

最佳答案

使用的存储取决于实际数值以及列精度和列小数位数。

Oracle 11gR2 concepts guide says:

Oracle Database stores numeric data in variable-length format. Each value is stored in scientific notation, with 1 byte used to store the exponent. The database uses up to 20 bytes to store the mantissa, which is the part of a floating-point number that contains its significant digits. Oracle Database does not store leading and trailing zeros.

10gR2 guide goes further:

Taking this into account, the column size in bytes for a particular numeric data value NUMBER(p), where p is the precision of a given value, can be calculated using the following formula:

ROUND((length(p)+s)/2))+1

where s equals zero if the number is positive, and s equals 1 if the number is negative.

Zero and positive and negative infinity (only generated on import from Version 5 Oracle databases) are stored using unique representations. Zero and negative infinity each require 1 byte; positive infinity requires 2 bytes.

如果您有权访问 My Oracle Support,注释 1031902.6 中提供了更多信息。

You can see the actual storage used with vsize or dump

create table t42 (n number(10));

insert into t42 values (0);
insert into t42 values (1);
insert into t42 values (-1);
insert into t42 values (100);
insert into t42 values (999);
insert into t42 values (65535);
insert into t42 values (1234567890);

select n, vsize(n), dump(n)
from t42
order by n;

N VSIZE(N) DUMP(N)
------------ ---------- ---------------------------------
-1 3 Typ=2 Len=3: 62,100,102
0 1 Typ=2 Len=1: 128
1 2 Typ=2 Len=2: 193,2
100 2 Typ=2 Len=2: 194,2
999 3 Typ=2 Len=3: 194,10,100
65535 4 Typ=2 Len=4: 195,7,56,36
1234567890 6 Typ=2 Len=6: 197,13,35,57,79,91

请注意,存储空间会根据值而变化,即使它们都位于 number(10) 列中,并且两个 3 位数字可能需要不同的存储量。

关于Oracle NUMBER(p) 存储大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24240087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com