Jak již řekli jiní:ovladač mapuje vše na BigDecimal, i když je definováno jako NUMBER(38) (které by mohlo být mapováno na BigInteger)
Je ale docela snadné zjistit, co ovladač mapuje. Jednoduše proveďte getObject() ve sloupci ResultSet a podívejte se, kterou třídu ovladač vygeneroval.
Něco jako:
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()); }