Numeric Datatypes
Like the Oracle database, PL/SQL offers a variety of numeric datatypes to suit different purposes:
- NUMBER
A true decimal datatype that is ideal for working with monetary amounts. NUMBER is also the only one of PL/SQL’s numeric types to be implemented in a completely platform-independent fashion. Anything you do with NUMBERs should work the same regardless of the underlying hardware.
- PLS_INTEGER and BINARY_INTEGER
Integer datatypes conforming to your hardware’s underlying, integer representation. Arithmetic is performed using your hardware’s native, machine instructions. You cannot store values of these types in the database.
- SIMPLE_INTEGER
Introduced with Oracle Database 11g. Has the same range as BINARY_INTEGER, but does not allow for NULLs and does not raise an exception if an overflow occurs. The SIMPLE_INTEGER datatype results in significantly faster execution times for natively compiled code.
- BINARY_FLOAT and BINARY_DOUBLE
Single- and double-precision, IEEE-754, binary floating-point types. I don’t recommend these types for monetary amounts. They are useful, however, when you need fast, floating-point arithmetic.
- SIMPLE_FLOAT and SIMPLE_DOUBLE
Introduced with Oracle Database 11g. Have the same range as BINARY_FLOAT and BINARY_DOUBLE, but do not allow for NULLs, do not raise an exception if an overflow occurs, and do not support special literals or predicates such as BINARY_FLOAT_MIN_NORMAL, IS NAN, or IS NOT INFINITE. These SIMPLE datatypes result in significantly faster ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access