27/07/2007, 13h19
|
#7
|
|
|
Re: Aide sur un script Uppercase/lowercase
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
>>>> >>
>>>> >
>>>>
>>>>
>>>>
>>
>>
>
>
|
|
|
|