
La fonction SQL ORACLE UPPER prend un seul argument de type chaine de caractère et retourne la même chaine mais en majuscule
SELECT UPPER('Bonjour le monde') FROM DUAL;
UPPER('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 majuscule ou non. La solution sera de convertir les deux chaines en majuscule
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE UPPER(FIRST_NAME) = UPPER('david');
EMPLOYEE_ID FIRST_NAME LAST_NAME SALARY
------------------- ----------------- ---------------------- -------------------
105 David Austin 4800
151 David Bernstein 9500
165 David Lee 6800
Voir aussi les fonctions LOWER et INITCAP.
Syntaxe de UPPER en SQL Oracle
UPPER(chaine)UPPER convertit tous les caractères d'une chaîne en majuscules. Les chiffres et symboles restent inchangés.
🧪 Envie de pratiquer ? Exécutez les exemples de cet article dans notre SQL Playground gratuit — aucun logiciel à installer.
Exemples pratiques
SELECT UPPER('cours sql oracle') FROM DUAL; -- COURS SQL ORACLE
SELECT UPPER(nom) FROM employes;
UPDATE clients SET code_pays = UPPER(code_pays);Le cas d’usage principal : la recherche insensible à la casse
C’est de loin l’utilisation la plus fréquente de UPPER — comparer sans se soucier des majuscules :
SELECT * FROM clients WHERE UPPER(nom) = UPPER('dupont');
SELECT * FROM clients WHERE UPPER(nom) LIKE UPPER('%mar%');⚠️ Attention aux performances : appliquer UPPER sur une colonne dans un WHERE désactive l’index classique. La solution professionnelle est un index basé sur une fonction :
CREATE INDEX idx_clients_nom_upper ON clients (UPPER(nom));Oracle utilisera alors cet index pour toute requête écrite avec UPPER(nom).
UPPER, LOWER et INITCAP
| Fonction | Résultat sur ‘cours sql’ |
|---|---|
| UPPER | COURS SQL |
| LOWER | cours sql |
| INITCAP | Cours Sql |
SELECT UPPER(nom), LOWER(email), INITCAP(ville) FROM clients;Accents et caractères spéciaux
UPPER gère les accents selon le paramétrage NLS : UPPER('éléphant') donne ÉLÉPHANT. Pour ignorer aussi les accents dans une recherche, combinez avec les comparaisons linguistiques :
SELECT * FROM clients WHERE NLSSORT(nom,'NLS_SORT=BINARY_AI') = NLSSORT('dupont','NLS_SORT=BINARY_AI');