|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 162 ![]() |
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 :
Code :
Savez vous ce qui peut être la cause de ce problème? Merci de votre réponse |
||||
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 162 ![]() |
J'ai peut être trouvé la cause du problème:
Je tente de lui dire to_number(123..., ...) au lieu de to_number('123...',...) Mais je n'arrive pas à concaténer avec des ' mon char, et il ne comprends pas "'" || nbhabitants!!! De l'aide svp!
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Modifiez plutôt vos paramètres NLS de façon à ce que le séparteur décimal soit correctement interprété au lieu de faire un usine à gaz qui sera lente, difficile à maintenir, illisible et potentiellement source de bugs !
Oracle a prévu la gestion des séparateurs. Utilisez-les ! |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 162 ![]() |
Moi je veux bien, mais j'ai pas les droits pour modifier oracle.ini, meme un
Code :
ALTER SESSION SET NLS_NUMERIC_CHARACTERS='.,'; je ne comprends pas pourquoi il ne fonctionne pas! |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
marche pas.... ben voyons.. c'est très explicite !! :S
quel est le code erreur ? que donne |
|
|
00
|
|
|
#6 | ||||||
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 162 ![]() |
le résultat de la requête que tu viens de me donner donne:
Code :
par contre, j'ai testé ceci: Code :
SELECT to_number('100,00','999.99') FROM dual; Code :
Code :
SELECT to_number('100.00','999.99') FROM dual; Code :
Le truc, c'est que si mon to number est sur 999,99, ca me transforme en entier fois 100 :/ |
||||||
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Je vois pas où est le problème ?!
Code :
|
||
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 162 ![]() |
La session est modifiée, pas de souci de ce coté là, mais le truc, c'est que je charge des tables externes, dont certaines ont des , comme séparateur, et les autres des .
Cela ne règle donc pas mon problème Je pensais que si je mettais en séparateur les , et . cela marcherait mais faut croire que non edit: Je viens de voir que ,. mettais en fait l'un comme séparateur décimal, et l'autre pour les milliers. Comment faire pour que l'un ou l'autre soit en décimal? |
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 162 ![]() |
AAAAAAAAAAAAAAAAAAAAAAAAAH
J'ai trouvé l'erreur de screunieunieu!! Mon collègue mais néanmoins ami a modifier le fichier que je récupère. la premiere ligne n'est plus une ligne de donnée, mais une ligne contenant le nom des champs!!! Comment puis-je faire pour sauter le chargement de cettre premiere ligne dans ma table externe, je crois qu'il y a une fonction skip 1 qui fait un truc du style non? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com