Dette er spekulationer baseret på lignende adfærd i Postgres-driveren postgresql-9.4-1204-jdbc42.jar
.
For en uspecificeret NUMERIC
databasen ser ikke ud til at gemme nogen særlig information om kolonnens præcision og skala. Dette giver databasen mulighed for internt at gemme værdien på en hvilken som helst måde, den synes passende. Fra https://www.postgresql.org/docs/current/ static/datatype-numeric.html
Siden driveren ved ikke, hvad implementeringsspecifikke maksimum af serveren er, at den ikke kan returnere de faktiske værdier. Den returnerer 0 for at indikere, at den ikke kender de faktiske værdier og ikke ønsker at foretage nogle kvalificerede gæt.
Det ser ud til, at situationen er den samme med Oracle . Den maksimale præcision kan være højere, men bærbarhed er garanteret kun op til 38 cifre.
Med hensyn til at løse problemet i spørgsmålet, som StanislavL angav, kan du tvinge værdien til en bestemt præcision/skala ved at kaste.