web-dev-qa-db-fra.com

Oracle SQL - changer le point décimal pour une virgule

Je suis sur le Brésil, et notre format monétaire est quelque chose comme 'R $ 9.999,00'.

J'essaie de sélectionner un champ et de changer le format du retour. Cependant, il semble que je ne puisse pas le faire. J'ai essayé:

ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.';

et

SELECT to_char(10,'9,999.00', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL

Aucun de ceux-là ne fonctionnait. Je ne sais pas si ce pourrait être mon client (je suis sur Ubuntu avec sqldeveloper), ou si je fais quelque chose de mal.

Des idées?

15
Andre Cardoso

Utilisation

SELECT to_char(10,'9G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL

G est le symbole du séparateur de milliers D est le séparateur décimal

20
Petr Pribyl

Je pense que votre masque de format est incorrect.Veuillez essayer ce masque de format:

SELECT to_char(10000,'99G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL

assurez-vous que vous utiliserez le nombre correct de masque de format "9" pour les plus grands nombres

4
Josef Procházka

J'ai résolu le problème en:

SELECT TO_CHAR(1000000000,'999G999G999G999D99','NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

pour formater un nombre par milliards. Je pense que ça aide.

2
ddsultan