Why is Oracle's number datatype so HUGE? and why do I seem to have no alternatives?
See here ixora.


Number has variable length, like string.
each digit occupies one nibble (4bits, half byte)
NUMBER implementation is platform independent
you can validate size of number value in a column by calling dump() function


PS: Oracle also supports native intergers like PLS_INTEGER, but these can only be used in PL/SQL context only.