cs_Jordan59
Messages postés174Date d'inscriptionvendredi 26 mai 2006StatutMembreDernière intervention 9 avril 2014
-
21 févr. 2012 à 18:16
cs_Jordan59
Messages postés174Date d'inscriptionvendredi 26 mai 2006StatutMembreDernière intervention 9 avril 2014
-
22 févr. 2012 à 09:13
Bonsoir à tous
Je rencontre un petit souci de conversion de chaîne en numérique.
J’ai des nombres décimaux (‘1234.56’ et '1234,56') stocké dans un champ de type VARCHAR2. je souhaiterai récupérer ces nombre en faisant un TO_NUMBER(‘1234.56’) ou TO_NUMBER(‘1234,56’) mais le problème est qu'un des deux explose car le séparateur numérique de la base est ‘,’ et non ‘.’ !
Je voudrai donc pouvoir faire un TO_NUMBER(‘1234.56’) mais aussi un TO_NUMBER(‘1234,56’) sans que ça n’explose et ce quel que soit le séparateur paramétré pour la base.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 21 févr. 2012 à 19:13
Salut,
suffit sûrement de faire un REPLACE avant de caster, genre :
TO_NUMBER(REPLACE(mon_champ, '.', ','))
si la valeur textuelle a déjà une virgule, aucun remplacement ne sera fait
si la valeur textuelle a un point, il sera remplacé par une virgule
dans les deux cas le cast se passera donc bien
(non testé, j'ai pas de serveur Oracle sous la main)
cs_Jordan59
Messages postés174Date d'inscriptionvendredi 26 mai 2006StatutMembreDernière intervention 9 avril 20147 21 févr. 2012 à 18:19
Bonsoir à tous
Je rencontre un petit souci de conversion de chaîne en numérique.
J'ai des nombres décimaux ('1234.56' et '1234,56') stockés dans un champ de type VARCHAR2. je souhaiterai récupérer ces nombre en faisant un TO_NUMBER('1234.56') ou TO_NUMBER('1234,56') mais le problème est qu'un des deux explose car le séparateur numérique de la base est ',' et non '.' !
Je voudrai donc pouvoir faire un TO_NUMBER('1234.56') mais aussi un TO_NUMBER('1234,56') sans que ça n'explose et ce quel que soit le séparateur paramétré pour la base.