Integer是Number类型的子类型:
NUMBER Type You use the NUMBER datatype to store fixed or floating point numbers 
of virtually any size.  You can specify precision, which is the total 
number of digits, and scale, which determines where rounding occurs. 
The syntax follows:     NUMBER[(precision, scale)] You cannot use constants or variables to specify precision and scale; 
you must use integer literals.  The maximum precision of a NUMBER value is 38; the magnitude range is 1.0E-129 .. 9.99E125.  If you do not 
specify the precision, it defaults to the maximum value supported by 
your system. Scale can range from -84 to 127.  For instance, a scale of 2 rounds to 
the nearest hundredth (3.456 becomes 3.46).  Scale can be negative, 
which causes rounding to the left of the decimal point.  For example, 
a scale of -3 rounds to the nearest thousand (3456 becomes 3000).  A scale of zero rounds to the nearest whole number.  If you do not specify 
the scale, it defaults to zero. The NUMBER subtypes below have the same range of values as their base 
type.  For example, FLOAT is just another name for NUMBER.     DEC 
    DECIMAL 
    DOUBLE PRECISION 
    FLOAT 
    INTEGER 
    INT 
    NUMERIC 
    REAL 
    SMALLINT You can use these subtypes for compatibility or when you want an identifier more descriptive than NUMBER.