Fonction SQL ORACLE – RTRIM() et LTRIM()

Illustration du tutoriel SQL Oracle : Fonction SQL ORACLE – RTRIM() et LTRIM()

Publicité

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

  • RTRIM()

La fonction RTRIM permet d’enlever les espaces qui existent à la fin d’une chaine de caractère

SELECT RTRIM('   Bonjour  ') FROM DUAL;

RTRIM('BONJOUR') 
----------------------
   Bonjour

 

  • LTRIM()

La fonction LTRIM permet d’enlever les espaces qui sont au debut d’une chaine de caractère

SELECT '|' || LTRIM('   Bonjour  ') || '|' FROM DUAL;

'|'||LTRIM('BONJOUR')||'|' 
-------------------------- 
|Bonjour  |

 

Syntaxe de RTRIM et LTRIM en SQL Oracle

LTRIM(chaine [, caracteres])   -- nettoie à GAUCHE (Left)
RTRIM(chaine [, caracteres])   -- nettoie à DROITE (Right)

Sans second argument, ces fonctions suppriment les espaces. Avec un second argument, elles suppriment tout caractère présent dans l'ensemble fourni, tant qu'elles en rencontrent.

ExpressionRésultatExplication
LTRIM(' SQL')'SQL'espaces de gauche supprimés
RTRIM('SQL ')'SQL'espaces de droite supprimés
LTRIM('000123', '0')'123'zéros de tête supprimés
RTRIM('prix;;;', ';')'prix'points-virgules de fin
RTRIM('abcxyz', 'zyx')'abc'un ensemble, pas une chaîne

Point clé : le second argument est un ensemble de caractères, pas un mot. RTRIM('abcxyz', 'zyx') retire z, puis y, puis x : il ne cherche pas la sous-chaîne « zyx ».

Exemples pratiques

-- Nettoyer une saisie utilisateur des deux côtés
SELECT LTRIM(RTRIM('   Jean Dupont   ')) FROM DUAL;   -- 'Jean Dupont'

-- Supprimer les zéros de tête d'un code article
SELECT LTRIM('0000456789', '0') FROM DUAL;            -- '456789'

-- Nettoyer une colonne avant comparaison
SELECT * FROM clients WHERE RTRIM(code_postal) = '75001';

-- Enlever un séparateur final construit par une boucle
SELECT RTRIM('pomme,poire,cerise,', ',') FROM DUAL;   -- 'pomme,poire,cerise'

RTRIM, LTRIM ou TRIM : lequel utiliser ?

FonctionCe qu’elle nettoieSecond argument
LTRIMà gauche uniquementun ensemble de caractères
RTRIMà droite uniquementun ensemble de caractères
TRIMles deux côtés (par défaut)un seul caractère
TRIM(LEADING/TRAILING/BOTH ...)au choixun seul caractère
-- Ces deux lignes sont équivalentes
SELECT TRIM('  SQL  ') FROM DUAL;
SELECT LTRIM(RTRIM('  SQL  ')) FROM DUAL;

-- TRIM n'accepte qu'UN caractère : ceci échoue (ORA-30001)
-- SELECT TRIM('xy' FROM 'xySQLyx') FROM DUAL;

-- Alors que LTRIM/RTRIM acceptent un ensemble
SELECT LTRIM(RTRIM('xySQLyx', 'xy'), 'xy') FROM DUAL;  -- 'SQL'

Erreurs fréquentes

  • Croire que le 2e argument est une chaîne — c'est le piège n°1. RTRIM('fichier.txt', '.txt') renvoie 'fichier' et non 'fichier.', car il retire aussi le point.
  • Colonne CHAR au lieu de VARCHAR2 — une colonne CHAR(10) est complétée par des espaces ; nettoyer à l'affichage ne règle pas le fond, changez le type.
  • RTRIM dans un WHERE sur colonne indexéeWHERE RTRIM(code) = 'X' empêche l'usage de l'index. Nettoyez les données à l'insertion plutôt qu'à la lecture.
  • Attention aux tabulationsLTRIM sans argument ne retire que les espaces, pas les tabulations. Utilisez LTRIM(chaine, ' ' || CHR(9)).

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 *

Cours SQL & Oracle — 100% gratuitVoir les cours →