Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Speichern von nachgestellten Nullen in der Datenbank mit JPA und Oracle

Sie können es nicht lösen, und ich würde vorschlagen, dass es kein Problem ist. Genau so speichert Oracle NUMBER Werte:mit der geringsten erforderlichen Genauigkeit. Wenn Sie den Preis als 4.00 eingegeben haben es würde als 4 gespeichert werden .

Beachten Sie, dass Java bei der Anzeige des Werts auch nicht standardmäßig zwei Dezimalstellen verwendet. Sie müssen die Anzahl der Dezimalstellen angeben.

Und wenn möglich, würde ich BigDecimal verwenden statt float für den Preis. Der float Typ ist nicht genau. Eine Alternative ist die Verwendung eines der Integer-Typen (int oder long ) und verwalten Sie die Nachkommastellen selbst.

Um den Preis für die Anzeige in Ihrem Java-Code zu formatieren, verwenden Sie String.format("%.2f", price) .

Um den Preis in einer Oracle-Abfrage zu formatieren, verwenden Sie TO_CHAR :

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

Wählen Sie die für Sie am besten geeignete Anzahl von Platzhaltern und beachten Sie, dass Oracle am Anfang des Ergebnisses ein zusätzliches Leerzeichen einfügt. Es soll ein Minuszeichen enthalten, wenn die Zahl negativ ist, aber für null/positiv ist es ein Leerzeichen. Um das Leerzeichen loszuwerden, verwenden Sie den FM Modifikator im TO_CHAR :

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