OVH Cloud OVH Cloud

Aide sur un script Uppercase/lowercase

11 réponses
Avatar
christophe cDs
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

1 réponse

1 2
Avatar
christophe cDs
Oui j'ai vu ça que cela fonctionnait après plusieurs test.

Encore merci de votre aide a tous.

Chris.

"Fred BROUARD" a écrit dans le message de news:



christophe cDs a écrit :
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.



Une fonction doit TOUJOURS être appelée avec son nom + SON SCHEMA.

Donc dbo.FN_FIRST_CAP

A +




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" a écrit dans le message de news:

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" a écrit dans le
message de news:
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:
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

















--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************


1 2