
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
SELECT INITCAP('BONJOUR LE MONDE') FROM DUAL;
INITCAP('BONJOURLEMONDE')
-----------------------
Bonjour Le MondeNous 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ée | Résultat INITCAP | Attendu |
|---|---|---|
| jean-pierre | Jean-Pierre ✅ | Jean-Pierre |
| o’connor | O’Connor ✅ | O’Connor |
| jean de la fontaine | Jean De La Fontaine ❌ | Jean de La Fontaine |
| mcdonald | Mcdonald ❌ | McDonald |
| sql | Sql ❌ | 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 |
|---|---|
| INITCAP | Cours Sql Oracle |
| UPPER | COURS SQL ORACLE |
| LOWER | cours 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.

je vexu recevoir svp