Dit is speculatie gebaseerd op soortgelijk gedrag in het Postgres-stuurprogramma postgresql-9.4-1204-jdbc42.jar
.
Voor een niet-gespecificeerde NUMERIC
de database lijkt geen specifieke informatie op te slaan over de precisie en schaal van de kolom. Hierdoor kan de database de waarde intern opslaan op elke gewenste manier. Van https://www.postgresql.org/docs/current/ static/datatype-numeric.html
Sinds de chauffeur weet niet wat het implementatiespecifieke maximum is van de server is, het kan niet de werkelijke waarden retourneren. Het retourneert 0 om aan te geven dat het de werkelijke waarden niet kent en geen gefundeerde gissingen wil maken.
Het lijkt erop dat de situatie hetzelfde is met Oracle . De maximale precisie kan hoger zijn, maar draagbaarheid is gegarandeerd tot 38 cijfers.
Wat betreft het oplossen van het probleem in de vraag, zoals StanislavL al aangaf, kun je de waarde forceren tot een specifieke precisie/schaal door te gieten.