Ja, Oracle NUMBER-Typen sind präzise. Sie ähneln eher Ganzzahlen mit einer Skala als Float/Double-Typen. Eine NUMBER(10,3) hat also 10 Stellen, 3 nach dem Dezimalkomma, was wirklich eine 10-stellige Ganzzahl mit einer Skala von 3 ist. Tatsächlich funktionieren Java BigDecimals genau so (ein BigInteger plus eine interne Skala).