sql >> Database >  >> RDS >> Oracle

Hoe om te gaan met het verlies van precisie op JDBC-numerieke typen als gevolg van groeperingsfuncties?

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.



  1. Waarom kan easy_install MySQLdb niet vinden?

  2. Mybatis:wijs een deel van de SQL toe aan HashMap in POJO

  3. NLS_INITCAP() Functie in Oracle

  4. Selecteer waarden tussen startdatum en einddatum