2011-01-05 11 views
1

Ich habe einige Tests durchgeführt, wo ich einige Datensätze von Java BigDecimal in eine Varchar2-Spalte in Oracle eingefügt. Was ich tun wollte, war, java bigDecimal in die Spalte Nummer in Oracle einzufügen.Einfügen BigDecimal => Varchar2 Spalte VS BigDecimal => Nummer Spalte

Ich frage mich, wie die 2 anders arbeiten und welche vorläufige Konvertierungsschritte nimmt Oracle in den Szenarien.

  • BigDecimal => Varchar2 Spalte BigDecimal => Spalte Nummer

Kann ich immer noch die Ergebnisse aus meinen früheren Tests verwenden. Ich schaue hauptsächlich auf Latenz, Durchsatz usw.

Antwort

0

Ich habe keinen messbaren Leistungsunterschied gefunden. Dies war nur ein Test eines Prototyps, damit ich die Ergebnisse nutzen kann.

3

Erinnern Sie sich an die goldene Regel: Sie sollten niemals unter keinen Umständen Zahlen in Varchar-Spalten speichern.

Das Speichern von Zahlen in Zeichenspalten wird Ihnen auf lange Sicht viel Ärger bereiten.

Nummern immer als Zahlen speichern.

Verwenden Sie zum Speichern der Nummern eine PreparedStatement und verwenden Sie die Methode setBigDecimal(), um die Nummer an die Datenbank zu senden. Dies sorgt für eine Konvertierung und garantiert, dass der korrekte Wert in der Datenbank gespeichert wird und Sie sich keine Sorgen machen müssen, z. über verschiedene Dezimaltrennzeichen in verschiedenen Gebietsschemata beim Senden einer Zahl als String an die Datenbank.