sql >> Database teknologi >  >> RDS >> Oracle

Hvordan man håndterer tab af præcision på JDBC numeriske typer på grund af grupperingsfunktioner

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.



  1. Vil du fjerne en navngivet diskenhed med docker-compose?

  2. Hvordan sammenkædes tekst fra flere rækker til en enkelt tekststreng i Oracle-serveren?

  3. java.sql.SQLSyntaxErrorException:Ukendt kolonne .JPA Entity Issue?

  4. Oracle anser tomme strenge for at være NULL, mens SQL Server ikke gør det - hvordan håndteres dette bedst?