Toto je spekulace založená na podobném chování v ovladači Postgres postgresql-9.4-1204-jdbc42.jar
.
Pro blíže nespecifikovaný NUMERIC
zdá se, že databáze neukládá žádné konkrétní informace o přesnosti a měřítku sloupce. To umožňuje databázi interně uložit hodnotu jakýmkoli způsobem, který se zdá být vhodný. Z https://www.postgresql.org/docs/current/ static/datatype-numeric.html
Protože ovladač nezná maximální implementační konkrétní maximum serveru to znamená, že nemůže vrátit skutečné hodnoty. Vrací 0, což znamená, že nezná skutečné hodnoty a nechce dělat žádné kvalifikované odhady.
Zdá se, že situace je stejná jako u společnosti Oracle . Maximální přesnost může být vyšší, ale přenositelnost je zaručeno pouze do 38 číslic.
Pokud jde o vyřešení problému v otázce, jak naznačil StanislavL, můžete hodnotu vynutit na konkrétní přesnost/měřítko litím.