|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() keri mozant Inscription : février 2010 Messages : 5 ![]() |
Bonjour,
j'ai un Varchar2 contenant la chaine de caractère suivante : 123456789012345.1234567890 , je veux stocker cette chaîne dans un NUMBER(15,10) ,je veux pas qu'il me prenne 11 chiffre apres la virgule par exemple, Or, je constate qu'il me les prend, j'ai utilisé la fonction To_NUMBER avec toutes possibilité imajinables , Aidez moi Svp Merci d'avance |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
Peux tu préciser les ordres d'insertion en base, et de select qui t'amène à dire ça ?
Premièrement, un number(15,10), c'est 5 chiffres avant la virgule et 10 après.. (15 dont 10) Faudrait donc déclarer un number(25,10) Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() keri mozant Inscription : février 2010 Messages : 5 ![]() |
Merci Mcm , j'ai bien déclaré un NUMBER(25,10) c'est une erreur de frappe désolé.
Alors la chaine de caractère provient d'une table contenant que des varchar2(4000), (table d'import non typée), Je dois prendre cette valeur qui représente un montant et la mettre dans ma table typée ( NUMBER(25,10)) . j'essaie avec cette requête qui me retroune 123456789012345 Code :
SELECT to_number('123456789012345,12345') FROM dual Code :
INSERT INTO TEST_ksk(MNT) SELECT to_number('123456789012345,12345') FROM dual j'obtiens bizarrement 123456789012345,0080000000 Help |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
C'est simplement le format de restitution de ton client qui doit être configuré pour ajouter les 0
Edit : ,08 ??? C'est quoi cette histoire ? |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() keri mozant Inscription : février 2010 Messages : 5 ![]() |
Je crois que le .008 est un bug d'oracle , , en faisant mes tests avec des petites chaines de caracteres , tout foncitionne , par contre essaie d'exéctuer cette requête , tu verra que tu obtiendras le fameux .0080
Code :
SELECT CAST(to_number(substr('123456789012345.1234567899', 1, instr('123456789012345.1234567899', '.') + 14), '999999999999999.9999999999') AS NUMBER(25,10)) FROM dual |
|
|
00
|
|
|
#6 | |
|
Invité de passage
![]() keri mozant Inscription : février 2010 Messages : 5 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
Moi ça ramène le bon chiffre (toad sous oracle 9.2.0.7)
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com