Dans Oracle, le LPAD() La fonction vous permet de compléter la partie gauche d'une chaîne avec un certain caractère, jusqu'à un nombre spécifié de caractères.
La façon dont cela fonctionne est que vous spécifiez la longueur de la chaîne résultante. Si la chaîne d'origine est plus courte, le caractère de remplissage remplit l'espace restant.
Syntaxe
La syntaxe ressemble à ceci :
LPAD(expr1, n [, expr2 ]) Où :
expr1etexpr2peut être l'un des types de donnéesCHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, ouNCLOB.nest unNUMBERentier ou une valeur qui peut être implicitement convertie en unNUMBERentier.
La fonction renvoie expr1 , complété à gauche à la longueur n caractères avec la séquence de caractères dans expr2 .
Si expr2 est omis, le caractère de remplissage est un simple blanc.
Exemple
Voici un exemple simple pour illustrer :
SELECT LPAD('Cat', 5)
FROM DUAL; Résultat :
LPAD('CAT',5)
________________
Cat Notez que le nombre fourni est la largeur totale de la chaîne résultante - pas la quantité de rembourrage.
La voici à nouveau par rapport à la chaîne d'origine (non rembourrée) :
SELECT LPAD('Cat', 5)
FROM DUAL
UNION ALL
SELECT 'Cat'
FROM DUAL; Résultat :
LPAD('CAT',5)
________________
Cat
Cat Spécifiez un caractère
Dans cet exemple, je spécifie un caractère à utiliser pour le rembourrage :
SELECT LPAD('Cat', 5, '>')
FROM DUAL; Résultat :
LPAD('CAT',5,'>')
____________________
>>Cat Remplissage plus petit que la chaîne d'origine
Si le deuxième argument est inférieur à la chaîne d'origine, aucun remplissage n'est ajouté et la chaîne d'origine est raccourcie au nombre de caractères spécifié :
SELECT LPAD('Cat', 2)
FROM DUAL; Résultat :
LPAD('CAT',2)
________________
Ca Exemple de base de données
Voici un exemple de remplissage de la partie gauche des valeurs dans une colonne de base de données :
SELECT
country_name,
LPAD(country_name, 12, '.') AS Padded
FROM countries
FETCH FIRST 5 ROWS ONLY; Résultat :
COUNTRY_NAME PADDED _______________ _______________ Argentina ...Argentina Australia ...Australia Belgium .....Belgium Brazil ......Brazil Canada ......Canada
Valeurs nulles
Si l'un des arguments est null le résultat est null :
SET NULL 'null';
SELECT
LPAD(null, 3),
LPAD('Cat', null),
LPAD('Cat', 3, null)
FROM DUAL; Résultat :
LPAD(NULL,3) LPAD('CAT',NULL) LPAD('CAT',3,NULL)
_______________ ___________________ _____________________
null null null
Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois que null se produit à la suite d'un SQL SELECT déclaration.
Cependant, vous pouvez utiliser SET NULL pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null doit être retourné.
Nombre d'arguments incorrects
Appel de LPAD() sans passer aucun argument renvoie une erreur :
SELECT LPAD()
FROM DUAL; Résultat :
Error starting at line : 1 in command - SELECT LPAD() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Et passer le mauvais nombre d'arguments entraîne une erreur :
SELECT LPAD('Cat', 1, '>', 2)
FROM DUAL; Résultat :
Error starting at line : 1 in command -
SELECT LPAD('Cat', 1, '>', 2)
FROM DUAL
Error at Command Line : 1 Column : 28
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 - "too many arguments for function"
*Cause:
*Action: