|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Bonjour,
j'ai le problème suivant si quelqu'un peut m'aider. En fait je récupère un champs de type number(12,2) d'une base de donnée oracle. Je dois formater ce champs en supprimant la virgule et en réservant les deux derniers caractères au chiffre se trouvant après la virgule et les dix premiers au chiffre précédant la virgule. Par exemple (2 --> 000000000200, 2,5 --> 000000000250 et 2,55 --> 000000000255) y a-t-il une possibilité de faire ce formatage dans ma requête sql (dans le select) ou bien je dois passer par un langage de programmation pour le faire Merci pour votre aide Cdlt ammah |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Merci de votre réponse,
Je n'ai pas pu comprendre comment la fonction to_charpeut résoudre mon problème. mon souci est que je dois compléter chaque number avec des '0' avant et après la virgule. par conséquent il faut que je sache qu'il y a une virgule et ensuite ajouter le bon nombre de zeros selon le nombre de chiffres suivant et précédant cette virgule. Merci |
|
|
00
|
|
|
#4 | ||
|
Membre régulier
![]() Inscription : septembre 2008 Messages : 77 ![]() |
Tu peux toujours essayer un query de ce genre:
Code :
|
||
|
|
00
|
|
|
#5 | ||
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Le plus simple est :
Example : Code :
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
||
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Merci à vous tous.
Pour le moment j'ai testé la solution proposée par M. dragon74 et elle marche bien. Je vais essayé celle avec le to_char. Bien cordialement ammah |
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Bonjour,
vos réponses m'ont beaucoup aidées sauf que je viens de constater un problème. en fait, les nombres peuvent être négatifs et dans ce cas il faut réserver le premier caractère pour le signe '-' Par exemple 2,5 --> 000000000025 et -2,5 -->-00000000025 auriez vous une idée comment je peux faire ça Je vous remércie d'avance |
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Bonjour,
Ma question est la suivante. Je récupère un champs de type number(12,2) d'une base de donnée oracle. Je dois formater ce champs en supprimant la virgule et en réservant les deux derniers caractères au chiffre se trouvant après la virgule et les dix premiers au chiffre précédant la virgule. Par exemple (2 --> 000000000200, 2,5 --> 000000000250 et 2,55 --> 000000000255) On m'a proposé d'utiliser lpad ou to_char pour résoudre mon problème. les deux solutions marchent. Mon souci maintenant est que le number peut être négatif ou positif et pour prendre ça en compte je dois afficher devant chaque number le signe "+" ou "-" suivant le cas. pouvez vous m'aider afin de réaliser cette tâche Bien cordialement ammah |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 534 ![]() |
Code :
SELECT to_char(2.5 * 100,'S0000000000') FROM dual
__________________
Rédacteur Oracle (Oracle ACE) Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche Je ne réponds pas aux questions techniques par MP Blogs: Forms-PL/SQL-J2EE - Forms Java Beans |
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 276 ![]() |
Bonjour,
Si j'ai bien compris ce que tu voulais : Code :
|
||
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Merci pour votre réponse. Pouvez vous m'éclaircir un peu plus
En fait ce que j'ai envie de faire est le suivant. select(id, montant, ....) lorsque le montant est positif j'affiche devant le signe + et je le complète par des 0 jusqu'à 12 caractère. lorsqu'il est négatif je mets le signe - En plus de ça, je dois supprimer les virgules par exemple id montant 1 2,5 2 -2,3 3 0 la selection donne 1 -00000000025 2 +00000000023 3 +00000000000 Merci d'avance |
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 534 ![]() |
C'est exactement l'exemple que je viens de vous donner. L'avez-vous seulement essayé ?
__________________
Rédacteur Oracle (Oracle ACE) Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche Je ne réponds pas aux questions techniques par MP Blogs: Forms-PL/SQL-J2EE - Forms Java Beans |
|
|
00
|
|
|
#13 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Je vous remercie beaucoup.
En fait au début je ne l'ai pas bien compris. Je viens d'arriver à le faire marcher et je vous en remercie. Par contre ce qui me manque maintenant c'est d'afficher le signe + devant les nombres positifs. Le signe - s'affiche bien Merci d'avance ammah |
|
|
00
|
|
|
#14 | ||
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 534 ![]() |
Franchement, je ne vois pas d'où provient votre problème:
Code :
__________________
Rédacteur Oracle (Oracle ACE) Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche Je ne réponds pas aux questions techniques par MP Blogs: Forms-PL/SQL-J2EE - Forms Java Beans |
||
|
|
00
|
|
|
#15 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Je vous remercie beaucoup. La solution que vous m'avez proposé marche
Merci encore Cordialement ammah |
|
|
00
|
|
|
#16 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Bonjour,
je reviens vers vous M. SheikYerbouti de nouveau. en fait, je viens de constater que mon flux marche pas comme il faut. 2,5 --> +000000000250 ok mais par exemple 15 --> +000000000015 KO en fait, le résultat devait être : +000000001500 pour dire que le deux dernier chiffre sont ce qui est après la virgule. Merci d'avance |
|
|
00
|
|
|
#17 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
C'est bon. Il suffit en fait de multiplier par 100 avant de faire le to_char
merci |
|
|
00
|
|
|
#18 | ||||
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
c'est tout de même plus simple...
Code :
Code :
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
||||
|
00
|
|
|
#19 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Je te remercie M. vicenzo
|
|
|
00
|
|
|
#20 |
|
Futur Membre du Club
![]() Inscription : juin 2006 Messages : 100 ![]() |
Bonjour,
c'est moi de nouveau. avec la fonction to_char que vous m'avez conseillé, j'ai pu faire le formatage pour compléter le montant avec des 0 jusqu'à que j'arrive à 12 caractère. la fonction est : to_char(MNT_*100, '0999999999V99'). Maintenant je souhaite que le montant fasse 24 caractères. J'ai cru qu'il suffit d'ajouter des 9 avant le 'V' mais ça ne marche pas. pourriez vous m'indiquer comment dois-je faire? Merci d'avance ammah |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com