Fonction SQL ORACLE – LPAD()

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

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)

Publicité

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,'+-*')
------------------------
+-*+-Bonjour

Syntaxe 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-000042

Cas 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

FonctionComplèteUsage typique
LPADà gauchenombres, zéros non significatifs, alignement à droite
RPADà droitetexte, colonnes de largeur fixe, fichiers à format fixe
SELECT RPAD(nom, 20, '.') || salaire AS ligne FROM employes;
-- DUPONT..............3500

Erreurs 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.

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é