Bonjour ,
ramèneCode:select to_number(12345678.123456789,'99999999.999999999') from dual;
12345678,1234568
au lieu de
12345678.123456789
pourquoi ?
merci.
Version imprimable
Bonjour ,
ramèneCode:select to_number(12345678.123456789,'99999999.999999999') from dual;
12345678,1234568
au lieu de
12345678.123456789
pourquoi ?
merci.
C'est juste un problème de paramétrage d'affichage de l'outil que vous utilisez.
Par ailleurs to_number prend un varchar en 1er paramètre :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 SQL> SELECT to_number('12345678.123456789','99999999.999999999') FROM dual; TO_NUMBER('12345678.123456789','99999999.999999999') ---------------------------------------------------- 12345678,1 SQL> show numwidth numwidth 10 SQL> set numwidth 16 SQL> SELECT to_number('12345678.123456789','99999999.999999999') FROM dual; TO_NUMBER('12345678.123456789','99999999.999999999') ---------------------------------------------------- 12345678,1234568 SQL> set numwidth 38 SQL> SELECT to_number('12345678.123456789','99999999.999999999') FROM dual; TO_NUMBER('12345678.123456789','99999999.999999999') ---------------------------------------------------- 12345678,123456789 SQL>
Bonjour,
Cet ordre ne ramène ni 12345678.123456789 ni 12345678,123456789. Cet ordre ramène un nombre qui est affiché 12345678.123456789 ou 12345678,123456789 selon que les variables d'environnement définissent le point ou la virgule comme séparateur décimal.
Vous pouvez changer ce comportement pour la session en cours avec l'ordre suivant (ou en modifiant le paramétrage de votre client pour le faire à chaque session):
(attention à bien mettre l'espace après le point)Code:
1
2 ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '. ' ;
Mais comme je l'ai dit, cela ne change que l'affichage.