
La fonction SQL ORACLE LPAD permet de compléter un chaine de caractère (char1) par une autre chaine (char2) depuis l’à droite jusqu’à atteindre une taille donnée (n)
LPAD(char1, n, [char2])
Exemple :
SELECT LPAD('Bonjour', 10, '-') FROM DUAL;
LPAD('BONJOUR',10,'-')
----------------------
---Bonjour
Dans le cas où nous ne spécifions pas le la chaine char2, alors cette dernière et remplacer par Espace
SELECT '|' || LPAD('Bonjour', 10) || '|' FROM DUAL;
'|'||LPAD('BONJOUR',10)||'|'
----------------------------
| Bonjour|
Au cas où le nombre n est inférieur au nombre de caractère de la chaine char1 alors le résultat est les n premiers caractère de la chaine char1
SELECT LPAD('Bonjour', 2, '-') FROM DUAL;
LPAD('BONJOUR',2,'-')
---------------------
Bo
La chaine char2 peut ne pas être qu’un seul caractère :
SELECT LPAD('Bonjour', 12, '+-*') FROM DUAL;
LPAD('BONJOUR',12,'+-*')
------------------------
+-*+-BonjourSyntaxe de LPAD en SQL Oracle
LPAD(chaine, longueur_totale [, caractere_de_remplissage])LPAD complète chaine à gauche jusqu'à atteindre longueur_totale. Le caractère de remplissage vaut l'espace par défaut. Si la chaîne est plus longue que la longueur demandée, elle est tronquée.
🧪 Envie de pratiquer ? Exécutez les exemples de cet article dans notre SQL Playground gratuit — aucun logiciel à installer.
Exemples pratiques
SELECT LPAD('42', 5, '0') FROM DUAL; -- 00042
SELECT LPAD('Oracle', 10) FROM DUAL; -- ' Oracle'
SELECT LPAD('Oracle', 3) FROM DUAL; -- 'Ora' (tronqué !)
SELECT LPAD('-', 20, '-') FROM DUAL; -- --------------------Cas d’usage n°1 — les zéros non significatifs (matricules, références, codes) :
SELECT 'CMD-' || LPAD(id_commande, 6, '0') AS reference FROM commandes;
-- CMD-000042Cas d’usage n°2 — aligner des montants dans un état :
SELECT LPAD(TO_CHAR(montant, '999G990D00'), 15) AS montant_aligne FROM factures;Cas d’usage n°3 — arborescence hiérarchique :
SELECT LPAD(' ', (LEVEL-1) * 4) || nom AS arbre
FROM employes START WITH manager_id IS NULL CONNECT BY PRIOR id = manager_id;LPAD vs RPAD
| Fonction | Complète | Usage typique |
|---|---|---|
| LPAD | à gauche | nombres, zéros non significatifs, alignement à droite |
| RPAD | à droite | texte, colonnes de largeur fixe, fichiers à format fixe |
SELECT RPAD(nom, 20, '.') || salaire AS ligne FROM employes;
-- DUPONT..............3500Erreurs fréquentes
- Troncature silencieuse : LPAD ne prévient pas si la chaîne dépasse. Vérifiez avec LENGTH avant.
- LPAD sur un nombre : Oracle convertit implicitement, mais le format dépend des paramètres NLS. Passez par TO_CHAR pour un résultat prévisible.
