Re: How many bytes does the datatype NUMBER use?

From: Yosi Greenfield <ygreenfield_at_compuserve.com>
Date: 2000/02/09
Message-ID: <38A1ECE7.B6375E6F_at_compuserve.com>#1/1


Its approximately the (assigned width of the number over two) + (two, sometimes three).

If you need more specifics, I'm including the relevant doc from Oracle 8 Concepts following.

HTH, Yosi

""

Oracle stores numeric data in variable-length format. Each value is stored in scientific notation, with one byte used to store the exponent and up to 20 bytes to store the mantissa. (The resulting value is limited to 38 digits of precision.) Oracle does not store leading and trailing zeros. For example, the number 412 is stored in a format similar to 4.12 x 10^2, with one byte used to store the exponent (2) and two bytes used to store the three significant digits of the mantissa (4, 1, 2).

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

  1 byte              (exponent)
+ FLOOR(p/2)+1 bytes  (mantissa)
+ 1 byte              (only for a negative number where the number of
                              significant digits is less than 38)
_______________________

number of bytes of data

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 one byte; positive infinity requires two bytes.
""
Received on Wed Feb 09 2000 - 00:00:00 CET

Original text of this message