Dans Oracle, le RPAD() La fonction vous permet de remplir la partie droite 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 :
RPAD(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é à droite à 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 RPAD('Cat', 25)
FROM DUAL; Résultat :
RPAD('CAT',25)
____________________________
Cat Il n'est pas facile de voir l'effet de cet exemple, car nous avons rempli la chaîne avec le caractère par défaut (un espace), mais cela a eu pour effet de repousser la largeur de la colonne.
Vous trouverez ci-dessous un autre exemple qui illustre mieux l'effet :
SELECT RPAD('Cat', 15) || 'House'
FROM DUAL; Résultat :
RPAD('CAT',15)||'HOUSE'
__________________________
Cat House La concaténation des deux chaînes révèle la quantité de remplissage qui a été appliquée à la partie droite de la chaîne la plus à gauche.
Notez que le nombre fourni est la largeur totale de la chaîne résultante - pas la quantité de rembourrage.
Spécifiez un caractère
Dans cet exemple, je spécifie un caractère à utiliser pour le rembourrage :
SELECT RPAD('Cat', 7, '!')
FROM DUAL; Résultat :
RPAD('CAT',7,'!')
____________________
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 RPAD('Cat', 2)
FROM DUAL; Résultat :
RPAD('CAT',2)
________________
Ca Exemple de base de données
Voici un exemple de remplissage de la partie droite des valeurs dans une colonne de base de données :
SELECT
country_name,
RPAD(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
RPAD(null, 3),
RPAD('Cat', null),
RPAD('Cat', 3, null)
FROM DUAL; Résultat :
RPAD(NULL,3) RPAD('CAT',NULL) RPAD('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 RPAD() sans passer d'argument renvoie une erreur :
SELECT RPAD()
FROM DUAL; Résultat :
Error starting at line : 1 in command - SELECT RPAD() 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 RPAD('Cat', 1, '>', 2)
FROM DUAL; Résultat :
Error starting at line : 1 in command -
SELECT RPAD('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: