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

Lagring af efterfølgende nuller i database med JPA og Oracle

Du kan ikke løse det, og jeg vil foreslå, at det ikke er et problem. Det er bare sådan, Oracle gemmer NUMBER værdier:med den mindst nødvendige præcision. Hvis du har indtastet prisen som 4.00 det ville blive gemt som 4 .

Bemærk, at Java heller ikke som standard har to decimaler, når værdien vises. Du skal angive antallet af decimaler.

Og hvis det er muligt, ville jeg bruge BigDecimal i stedet for float til prisen. float typen er ikke præcis. Et alternativ er at bruge en af ​​heltaltyperne (int eller long ) og administrer selv decimalerne.

For at formatere prisen for visning i din Java-kode skal du bruge String.format("%.2f", price) .

For at formatere prisen i en Oracle-forespørgsel skal du bruge TO_CHAR :

SELECT TO_CHAR(price, '999999990.00'), etc.

Vælg det antal pladsholdere, der er bedst for dig, og bemærk, at Oracle vil sætte et ekstra mellemrum i begyndelsen af ​​resultatet. Det er meningen, at det skal holde et minustegn, hvis tallet er negativt, men for nul/positiv er det et mellemrum. Brug FM for at slippe af med pladsen modifikator i TO_CHAR :

SELECT TO_CHAR(price, 'FM999999990.00'), etc.



  1. Hvorfor får jeg 'Binær logning ikke mulig.' på min MySQL-server?

  2. Få den maksimalt tilladte længde i kolonne, mysql

  3. Entity Framework ORA-00932:inkonsistente datatyper:"'forventede CLOB fik CHAR"

  4. Tilslutning af Ignition til Microsoft Access