Sì, i tipi Oracle NUMBER sono precisi. Sono più simili a interi con una scala che a tipi float/double. Quindi un NUMBER(10,3) ha 10 cifre, 3 dopo il punto decimale, che è in realtà un intero di 10 cifre con una scala di 3. In effetti, è proprio così che Java BigDecimals funziona (essendo un BigInteger più una scala internamente).