27/07/2007, 18h00
|
#10
|
|
|
Re: Aide sur un script Uppercase/lowercase
MERCIIIIIIIIIIIIII
Enfin ca marche je vais pouvoir mettre a jour cette table.
Merci Beaucoup de votre aide.
"Jean-Pierre Riehl" <jean-pierre.riehl@b-e-w-i-s-e.fr> a écrit dans le
message de news: 1D946290-9EB7-4F34-A862-C2DEB2C1633B@microsoft.com...
> Essaie avec
>
> UPDATE models
> SET Nom = dbo.propercase(Nom),
> Prenom = dbo.propercase(Prenom)
>
>
> --
> Jean-Pierre Riehl
> http://blog.djeepy1.net
> http://www.bewise.fr
>
>
>
> "christophe cDs" <christophe@(no-spam)cds-paris.com> wrote in message
> news:%23HjLtDF0HHA.1188@TK2MSFTNGP04.phx.gbl...
>> J'ai trouver une fonction qui fonctionne
>> http://vyaskn.tripod.com/code/propercase.txt
>> Lorsque je lance la commande suivante ensuite: SELECT dbo.propercase(Nom)
>> AS Nom, dbo.propercase(Prenom) AS Prenom FROM models
>> J'ai bien les valeurs converties mais elles ne s'enregistrent pas dans la
>> table. Il me montre seulement le resultat sans les sauvegarder.
>>
>> Merci.
>>
>> "christophe cDs" <christophe@(no-spam)cds-paris.com> a écrit dans le
>> message de news: ueKhHhE0HHA.3768@TK2MSFTNGP06.phx.gbl...
>>> PS: Maintenant que le script a l'air opérationnel tel quel , y a t il
>>> une possibilité de le modifier un peu pour qu'il prenne en considération
>>> les espace ou - pour les nom composé?
>>>
>>> Merci
>>>
>>>
>>> "christophe cDs" <christophe@(no-spam)cds-paris.com> a écrit dans le
>>> message de news: esKPfeE0HHA.2484@TK2MSFTNGP06.phx.gbl...
>>>> Alors , je pense avoir trouvé la solution.
>>>>
>>>> J'ai récupéré une partie de la fonction et j'ai modifier un script que
>>>> j'avais trouver sur un site.
>>>>
>>>> Voila donc le script que j'ai fait, le résultat dans la table est
>>>> correct.
>>>> Si vous pensez que cela n'est pas bon dites le moi, j'ai fait le test
>>>> sur un base de test ( par sécurité).
>>>>
>>>> UPDATE models SET prenom = (UPPER(SUBSTRING(prenom, 1, 1)) +
>>>> LOWER(SUBSTRING(prenom, 2, LEN(prenom) -1)))
>>>> Celui ci fonction pour une colonne spécifique mais cela ne me pose pas
>>>> de problème de le lancer deux fois en modifiant les champs.
>>>>
>>>> merci.
>>>>
>>>>
>>>> "christophe cDs" <christophe@(no-spam)cds-paris.com> a écrit dans le
>>>> message de news: urx24RE0HHA.5644@TK2MSFTNGP05.phx.gbl...
>>>>> Bonjour et merci,
>>>>>
>>>>> Je viens de tester votre solution, lorsque exécute le script pour
>>>>> créer la fonction, cela passe sans problème, mais lorsque je passe le
>>>>> deuxième script en mettant le nom de ma table, j'ai une erreur qui me
>>>>> dit qu il ne reconnaît pas FN_FIRST_CAP comme étant une fonction.
>>>>>
>>>>> Server: Msg 195, Level 15, State 10, Line 1
>>>>> 'FN_FIRST_CAP' is not a recognized function name.
>>>>>
>>>>> Une idée de pourquoi il ne la reconnaît pas alors que lors de la
>>>>> création je n'ai pas eu d'erreur.
>>>>>
>>>>> Merci encore.
>>>>>
>>>>> Christophe
>>>>> cDs
>>>>>
>>>>>
>>>>>
>>>>> "OokieDookie" <sorrynospam@nowhere.com> a écrit dans le message de
>>>>> news: C2BBAC5A-87A1-485B-8020-B94CF5770E98@microsoft.com...
>>>>>> Bonjour,
>>>>>>
>>>>>> Fred BOUARD a créé une fonction utilisateur qui peut t'aider dans ta
>>>>>> démarche (http://sqlpro.developpez.com/cours/sqlserver/udf/)
>>>>>>
>>>>>> Exécute ce script sur ta base :
>>>>>>
>>>>>> CREATE FUNCTION FN_FIRST_CAP (@NAME VARCHAR(8000))
>>>>>> RETURNS VARCHAR(8000)
>>>>>> AS
>>>>>> BEGIN
>>>>>> IF @NAME IS NULL
>>>>>> RETURN NULL
>>>>>> IF LEN(@NAME) = 1
>>>>>> RETURN UPPER(@NAME)
>>>>>> RETURN UPPER(SUBSTRING(@NAME, 1, 1)) +
>>>>>> LOWER(SUBSTRING(@NAME, 2, LEN(@NAME) -1))
>>>>>> END
>>>>>> GO
>>>>>>
>>>>>> Il te suffit ensuite de lancer une requête du type :
>>>>>> SELECT FN_FIRST_CAP(Nom) AS Nom, FN_FIRST_CAP(Prenom) AS Prenom FROM
>>>>>> TATABLE
>>>>>>
>>>>>> Pour la suite je te conseille d'attendre le retour de congés du
>>>>>> développeur
>>>>>> :/, mais la fonction PATINDEX peut t'aider (notamment pour détecter
>>>>>> les
>>>>>> espaces et les tirets).
>>>>>> Mais comme l'a dit Jean-Pierre, ça risque d'être sport avec
>>>>>> uniquement des
>>>>>> requêtes.
>>>>>>
>>>>>> HTH
>>>>>>
>>>>>>
>>>>>> "christophe cDs" a écrit :
>>>>>>
>>>>>>> Bonjour et merci de votre réponse,
>>>>>>>
>>>>>>> La base de donnée se trouve sur un serveur SQL2000 entreprise.
>>>>>>> En ne prenant pas en considération les noms composé, mais juste le
>>>>>>> fait de
>>>>>>> mettre les premieres lettres en capital et le reste en petit, est ce
>>>>>>> que
>>>>>>> cela pourrait faciliter la tache pour creer une requete ?
>>>>>>>
>>>>>>> A vrai dire je ne suis pas developpeur du tout mais manager du
>>>>>>> support
>>>>>>> client, le developpeur est actuellement en vacances, c'est pourquoi
>>>>>>> j'essai
>>>>>>> de me debrouiller tant bien que mal a trouver une solution.
>>>>>>>
>>>>>>> Je pense que cela doit etre possible , j'ai effectuer des recherche
>>>>>>> sur le
>>>>>>> net, et trouver quelques approches mais rien de concluant
>>>>>>> malheureusement.
>>>>>>>
>>>>>>> En tout cas merci encore de votre réponse.
>>>>>>>
>>>>>>> Christophe
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> "Jean-Pierre Riehl" <jean-pierre.riehl@b-e-w-i-s-e.fr> a écrit dans
>>>>>>> le
>>>>>>> message de news:
>>>>>>> 18B171E2-6A65-42E0-A408-37F900636BD6@microsoft.com...
>>>>>>> > Bonjour Christophe,
>>>>>>> >
>>>>>>> > SQL n'est pas le langage de prédilection pour manipuler des
>>>>>>> > chaînes de
>>>>>>> > caractères, un langage de programmation sera plus adapté. De plus,
>>>>>>> > ce
>>>>>>> > genre de traitement est à implémenter dans une couche métier, bien
>>>>>>> > avant
>>>>>>> > d'être au sein de SQL Server. Cela dit, je ne connais pas les
>>>>>>> > contraintes
>>>>>>> > donc je vais proposer d'autres idées :
>>>>>>> > -il est aussi possible de définir ses propres types (UDT)
>>>>>>> > développés en
>>>>>>> > .NET (C#, VB.NET, etc.) et de les faire fonctionner dans SQL
>>>>>>> > Server 2005
>>>>>>> > avec la SQLCLR.
>>>>>>> > -si ce traitement doit être effectué une seule fois en mode
>>>>>>> > batch, vous
>>>>>>> > pouvez aussi regarder du coté des Procédures Stockées en code
>>>>>>> > managé.
>>>>>>> >
>>>>>>> > J'espère avoir répondu à la question...
>>>>>>> >
>>>>>>> > --
>>>>>>> > Jean-Pierre Riehl
>>>>>>> > http://blog.djeepy1.net
>>>>>>> > http://www.bewise.fr
>>>>>>> >
>>>>>>> >
>>>>>>> > "christophe cDs" <christophe@(no-spam)cds-paris.com> wrote in
>>>>>>> > message
>>>>>>> > news:e0a2cgszHHA.4916@TK2MSFTNGP03.phx.gbl...
>>>>>>> >> Bonjour,
>>>>>>> >>
>>>>>>> >> J'aimerais mettre à jour le contenu de 2 colonnes "prenom" et
>>>>>>> >> "nom" d'une
>>>>>>> >> table "models" pour que les entrées soit mise à jour de la façon
>>>>>>> >> suivante
>>>>>>> >> :
>>>>>>> >>
>>>>>>> >> 1 ère lettre en capitale (uppercase) et le reste en petit
>>>>>>> >> (lowercase) .
>>>>>>> >> (en prenant en compte qu il peut y avoir des prenom/nom composé,
>>>>>>> >> ex:
>>>>>>> >> marie cécile dodu qui doit devenir Marie Cécile Dodu)
>>>>>>> >>
>>>>>>> >> Merci de votre aide.
>>>>>>> >>
>>>>>>> >> Christophe
>>>>>>> >>
>>>>>>> >
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
|
|
|
|