Fonction SQL ORACLE – UPPER()

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

La fonction SQL ORACLE UPPER prend un seul argument de type chaine de caractère et retourne la même chaine mais en majuscule

Publicité
SELECT UPPER('Bonjour le monde') FROM DUAL;

UPPER('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 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

FonctionRésultat sur ‘cours sql’
UPPERCOURS SQL
LOWERcours sql
INITCAPCours 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');

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é

Laisser un commentaire

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

Publicité