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

TO_Char modello in formato numerico in Oracle

Tieni presente che stai trasformando un numero in una stringa. Il numero non ha alcun senso di "," o "." o qualsiasi altra cosa:è un numero.

Il trucco è ottenere il TO_CHAR funzione per convertire il numero interno nella rappresentazione di stringa che si desidera. Ci sono alcuni problemi di cui preoccuparsi:correggere il punto radice (decimale) e gestire il riempimento.

Ecco un esempio funzionante:

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

Le parti rilevanti della maschera:

FM viene utilizzato per tagliare gli spazi iniziali e finali che Oracle utilizza normalmente per riempire i numeri.

D è il punto radix, a seconda delle impostazioni NLS.

NLS_NUMERIC_CHARACTERS ... è una sostituzione delle impostazioni NLS locali:potrebbe non essere necessario se le impostazioni locali utilizzano una virgola per il decimale, ma è un modo per forzare questo comportamento in un database con, ad esempio, impostazioni nordamericane.