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

TO_Char Zahlenformatmodell in Oracle

Denken Sie daran, dass Sie eine Zahl in eine Zeichenfolge umwandeln. Die Zahl hat keinen Sinn für "," oder "." oder irgendetwas - es ist eine Zahl.

Der Trick besteht darin, den TO_CHAR zu erhalten Funktion, um die interne Zahl in die gewünschte Zeichenfolgendarstellung umzuwandeln. Es gibt ein paar Probleme, über die Sie sich Sorgen machen müssen:Korrektes Dezimaltrennzeichen und Auffüllen.

Hier ist ein funktionierendes Beispiel:

SELECT to_char(0.00235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

0,00235

SELECT to_char(156.45823,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

156,45823

SELECT to_char(-0.0235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

-0,0235

SELECT to_char(-156.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

-156,45623

SELECT to_char(123456789.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

123456789,45623

Die relevanten Teile der Maske:

FM wird verwendet, um führende und nachgestellte Leerzeichen zu entfernen, die Oracle normalerweise zum Auffüllen von Zahlen verwendet.

D ist der Basispunkt, abhängig von Ihren NLS-Einstellungen.

NLS_NUMERIC_CHARACTERS ... ist eine Überschreibung Ihrer lokalen NLS-Einstellungen - dies ist möglicherweise nicht erforderlich, wenn Ihr Gebietsschema ein Komma für die Dezimalstelle verwendet, aber es ist eine Möglichkeit, dieses Verhalten in einer Datenbank mit beispielsweise nordamerikanischen Einstellungen zu erzwingen.