Q

How many bytes are reserved for column type NUMBER(63)?

How many bytes does Oracle reserve for a column of type NUMBER(63) (defined as REAL in my PRO C program) where this column has values of 1 or 0 only? I have a table with column type NUMBER(63) and we are thinking of changing the type to CHAR(1) to save space!

This Content Component encountered an error
How many bytes does Oracle reserve for a column of type NUMBER(63) (defined as REAL in my PRO C program) where this column has values of 1 or 0 only? I have a table with column type NUMBER(63) and we are thinking of changing the type to CHAR(1) to save space!

Oracle will use up to 38 bytes to store a NUMBER datatype. However, if Oracle can use less bytes to store the number, it will. The minimum number of bytes for the NUMBER datatype is two, as Oracle has to store the exponent and the mantissa of the value.

The CHAR(1) datatype specification will require one byte of storage, assuming that you are using a single-byte characterset. A multi-byte characterset will require more bytes. So while changing from NUMBER to CHAR(1) will save one byte of storage space, I have to ask is it really worth the effort? Saving one byte here or there is really not worth the effort required to implement that change, in my opinion. And I tend to stick with the adage that numbers should be stored in NUMBER datatypes and strings in CHAR or VARCHAR2 datatypes. For numeric values, the NUMBER datatype will ensure that you have the appropriate precision. To store only a 1 or a 0, I would use the NUMBER(1,0) datatype.

This was first published in February 2006

Dig deeper on Oracle database design and architecture

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchDataManagement

SearchBusinessAnalytics

SearchSAP

SearchSQLServer

TheServerSide

SearchDataCenter

SearchContentManagement

SearchFinancialApplications

Close