Fonction SQL ORACLE – INITCAP()

Illustration du tutoriel SQL Oracle : Fonction SQL ORACLE – INITCAP()

La fonction SQL ORACLE INITCAP prend un seul argument de type chaine de caractère et retourne la même chaine mais le premier caractère de cette chaine et en majuscule et les autres sont en minuscules

Publicité
SELECT INITCAP('BONJOUR LE MONDE') FROM DUAL;

INITCAP('BONJOURLEMONDE')
-----------------------
Bonjour Le Monde

Nous utilisons cette fonction par exemple lorsqu’on veut chercher une valeur mais on ne sait pas si cette valeur est en minuscule ou non. La solution sera de convertir les deux chaines en minuscule

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE INITCAP(FIRST_NAME) = INITCAP('DAVID');

EMPLOYEE_ID         FIRST_NAME        LAST_NAME              SALARY 
------------------- ----------------- ---------------------- -------------------
105                 David             Austin                 4800 
151                 David             Bernstein              9500 
165                 David             Lee                    6800 

Voir aussi les fonctions UPPER et LOWER.

Syntaxe de INITCAP en SQL Oracle

INITCAP(chaine)

INITCAP met la première lettre de chaque mot en majuscule et toutes les autres en minuscules. Un « mot » est délimité par un espace ou tout caractère non alphanumérique.

🧪 Envie de pratiquer ? Exécutez les exemples de cet article dans notre SQL Playground gratuit — aucun logiciel à installer.

Exemples pratiques

SELECT INITCAP('cours sql oracle')  FROM DUAL;  -- Cours Sql Oracle
SELECT INITCAP('JEAN DUPONT')       FROM DUAL;  -- Jean Dupont
SELECT INITCAP(nom) || ' ' || INITCAP(prenom) FROM clients;

Normaliser des données saisies en majuscules :

UPDATE clients SET ville = INITCAP(ville);
-- 'PARIS' devient 'Paris', 'marseille' devient 'Marseille'

Les limites de INITCAP à connaître

INITCAP applique une règle mécanique, ce qui produit des résultats indésirables sur les noms composés et les particules :

EntréeRésultat INITCAPAttendu
jean-pierreJean-Pierre ✅Jean-Pierre
o’connorO’Connor ✅O’Connor
jean de la fontaineJean De La Fontaine ❌Jean de La Fontaine
mcdonaldMcdonald ❌McDonald
sqlSql ❌SQL

Le tiret et l’apostrophe étant des séparateurs, INITCAP remet une majuscule après. Pour les cas particuliers, corrigez ensuite avec REPLACE ou REGEXP_REPLACE :

SELECT REPLACE(INITCAP('jean de la fontaine'), ' De ', ' de ') FROM DUAL;

INITCAP, UPPER et LOWER

Fonction‘cours sql oracle’ donne
INITCAPCours Sql Oracle
UPPERCOURS SQL ORACLE
LOWERcours sql oracle

Bonne pratique : stockez les données dans une casse cohérente à l’insertion (via un trigger ou l’application) plutôt que d’appliquer INITCAP à chaque SELECT — cela évite aussi de désactiver les index.

Sur le même thème

Un nouveau tutoriel SQL par semaine

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Publicité

Un commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Cours SQL & Oracle — 100% gratuitVoir les cours →