Oracle
 sql >> Base de données >  >> RDS >> Oracle

Modèle de format de nombre TO_Char dans Oracle

Gardez à l'esprit que vous transformez un nombre en une chaîne. Le nombre n'a aucun sens de "," ou "." ou quoi que ce soit - c'est un nombre.

L'astuce consiste à obtenir le TO_CHAR fonction pour convertir le nombre interne en la représentation sous forme de chaîne que vous souhaitez. Il y a quelques problèmes à résoudre :obtenir le point de base (décimal) correct et gérer le remplissage.

Voici un exemple fonctionnel :

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

Les parties pertinentes du masque :

FM est utilisé pour couper les blancs de début et de fin qu'Oracle utilise normalement pour compléter les nombres.

D est le point de base, en fonction de vos paramètres NLS.

NLS_NUMERIC_CHARACTERS ... est un remplacement de vos paramètres NLS locaux - cela peut ne pas être nécessaire si vos paramètres régionaux utilisent une virgule pour la décimale, mais c'est un moyen de forcer ce comportement dans une base de données avec, par exemple, des paramètres nord-américains.