|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2009 Messages : 9 ![]() |
Bonjour,
Je rencontre un problème avec Oracle. Quand j'enregistre une chaine via mon appli, celle-ci passe automatiquement en majuscule dans ma BDD. Du coup, je cherche à faire une méthode qui me permette de mettre le texte en minuscule sauf pour le premier mot de chaque phrase sur un select. Est-ce possible? Je ne trouve rien sur le net. Merci d'avance. |
|
|
00
|
|
|
#2 | |||
|
Membre éclairé
![]() ![]() Richard Développeur PL/SQL Inscription : septembre 2010 Messages : 132 ![]() |
Salut,
La fonction INITCAP permets de mettre la première lettre d'un mot en majuscule mais pas d'une phrase : si t'as plusieurs mots dans ton VARCHAR ils auront tous la premère lettre en majuscule et c'est pas top ... Pour la phrase il faut donc faire une petite gymnastique comme montré dans le code ci-dessous : Code :
Citation:
|
|||
|
10
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2009 Messages : 9 ![]() |
Bonjour,
Merci pour cette réponse rapide mais en fait je me suis mal exprimé. J'enregistre dans ma BDD des phrases. Du coup, je cherche une méthode pour mettre chaque première lettre de chaque premier de mes phrases de mon champ en majuscules. Pour obtenir ce champ, pas d'union : select corps_email from email. Ex : "BONJOUR. JE M'APPELLE FRIGOK. JE SUIS NUL EN PL/SQL. deviendrait : "Bonjour. Je m'appelle frigok. Je suis nul en pl/sql." Le top du top serait de pouvoir définir des conditions en fonctions des fins de phrases. Par exemple, si je rencontre un "." ou un "!" ou encore un "?", je passe la première lettre suivante en majuscule. |
|
|
00
|
|
|
#4 | ||||
|
Membre chevronné
![]() |
essaie ça
Code :
Code :
__________________
d'avoir Pensé à voter positivement pour ceux qui vous ont aidés.
|
||||
|
|
10
|
|
|
#5 | ||
|
Membre éclairé
![]() ![]() Richard Développeur PL/SQL Inscription : septembre 2010 Messages : 132 ![]() |
islamov2000 -> ça te retourne une ligne par phrase ton script je sais pas si tel était le besoin initial
Moi je pense qu'il faudrait implémenter ta propre fonction déjà pour rendre le code SQL plus propre . Il y a un forum où un participant a codé une telle fonction et j'ai l'impression qu'elle fonctionne plutôt bien: Code :
|
||
|
10
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mars 2009 Messages : 9 ![]() |
Merci beaucoup, je vais regarder ça de plus près et je reviens vers vous
|
|
|
00
|
|
|
#7 | ||
|
Membre chevronné
![]() |
complement de réponse un peu compliqué.
Code :
Code :
1 Bonjour. Je m'appelle frigok. Je suis nul en pl/sql
__________________
d'avoir Pensé à voter positivement pour ceux qui vous ont aidés.
|
||
|
|
10
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : août 2008 Messages : 1 716 ![]() |
Islamov, il n'est pas possible d'utiliser le trick du CONNECT BY LEVEL sur une table de plus d'une ligne, on ne peut donc s'en servir que sur DUAL.
Ou alors il faut plus blinder : http://www.developpez.net/forums/d12...l/#post6993310 |
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : mars 2009 Messages : 9 ![]() |
Je vous remercie tous, pour l'aide.
Je confirme que la solution d'Islamov ne me retourne pas mon texte tel qu'il devrait être. J'ai vu avec un collègue et il m'a fait une fonction qui marche bien : Code :
Merci encore. Bonne soirée. |
||
|
|
00
|
|
|
#10 | |
![]() ![]() |
Citation:
http://www.developpez.net/forums/d12...l/#post6993310 Évidemment on détourne encore un peu une commande déjà détournée.
__________________
Email : http://scr.im/waldar |
|
|
00
|
|
|
#11 | |
|
Expert Confirmé
![]() Inscription : août 2008 Messages : 1 716 ![]() |
C'est ce qu'il y avait derrière :
Citation:
|
|
|
|
10
|
|
|
#12 |
![]() ![]() |
__________________
Email : http://scr.im/waldar |
|
00
|
Copyright © 2000-2013 - www.developpez.com