Bonjour,

J'ai une table externe qui possède un champs de type char contenant en fait un nombre d'habitants. Ne me demandez pas pourquoi, mais ce nombre est donné comme ceci: 123456789,00

Je veux créer une table a partir de ma table externe, qui prends ce champs en le transformant en Number.

Je me suis dit que ceci pouvait faire l'affaire:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
INSERT INTO ma_table ( champ1, nbhabitants)
SELECT champ1, (to_number(replace(nbhabitants,',','.'),'99999999999.99')) as nbhabitants from ma_table_externe;
Il me renvoie cette erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT champ1, (to_number(replace(nbhabitants,',','.'),'99999999999.99')) as nbhabitants from ma_table_externe;
                          *
ERREUR à la ligne 2 :
ORA-01722: invalid number
Si je teste le select seul, il ne fonctionne pas avec le number, mais il me retourne bien 123456789.00 si je ne fais que le replace.

Savez vous ce qui peut être la cause de ce problème?

Merci de votre réponse