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());
}