Jest to spekulacja oparta na podobnym zachowaniu w sterowniku Postgres postgresql-9.4-1204-jdbc42.jar
.
Dla nieokreślonego NUMERIC
baza danych nie wydaje się przechowywać żadnych konkretnych informacji na temat precyzji i skali kolumny. Dzięki temu baza danych może wewnętrznie przechowywać wartość w dowolny sposób, który wydaje się odpowiedni. Od https://www.postgresql.org/docs/current/ static/datatype-numeric.html
Od sterownika nie zna maksymalnej implementacji serwera oznacza to, że nie może zwrócić rzeczywistych wartości. Zwraca 0, aby wskazać, że nie zna rzeczywistych wartości i nie chce zgadywać.
Wygląda na to, że sytuacja jest taka sama z Oracle . Maksymalna precyzja może być wyższa, ale przenośność jest gwarantowane tylko do 38 cyfr.
Jeśli chodzi o rozwiązanie problemu w pytaniu, tak jak wskazał StanislavL, możesz wymusić wartość do określonej precyzji/skali przez odlewanie.