Wie andere bereits gesagt haben:Der Treiber bildet alles auf BigDecimal ab, auch wenn es als NUMBER(38) definiert ist (was auf BigInteger abgebildet werden könnte)
Aber es ist ziemlich einfach herauszufinden, was der Treiber abbildet. Führen Sie einfach ein getObject() für die Spalte des ResultSet aus und sehen Sie, welche Klasse der Treiber generiert hat.
Etwas wie:
ResultSet rs = statement.executeQuery("select the_number_column from the_table"); if (rs.next()) { Object o = rs.getObject(1); System.out.println("Class: " + o.getClass().getName()); }