In Oracle, de RPAD() Met deze functie kunt u het rechtergedeelte van een tekenreeks opvullen met een bepaald teken, tot een bepaald aantal tekens.
De manier waarop het werkt, is dat u specificeert hoe lang de resulterende string moet zijn. Als de oorspronkelijke tekenreeks korter is, vult het opvulteken de resterende ruimte op.
Syntaxis
De syntaxis gaat als volgt:
RPAD(expr1 , n [, expr2 ]) Waar:
expr1enexpr2kan elk van de gegevenstypen zijnCHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, ofNCLOB.nis eenNUMBERgeheel getal of een waarde die impliciet kan worden geconverteerd naar eenNUMBERgeheel getal.
De functie retourneert expr1 , rechts opgevuld tot lengte n tekens met de reeks tekens in expr2 .
Als expr2 wordt weggelaten, is het opvulteken een enkele spatie.
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren:
SELECT RPAD('Cat', 25)
FROM DUAL; Resultaat:
RPAD('CAT',25)
____________________________
Cat Het is niet gemakkelijk om het effect van dit voorbeeld te zien, omdat we de string hebben opgevuld met het standaardteken (een spatie), maar het had wel tot gevolg dat de breedte van de kolom werd verdrongen.
Hieronder is nog een voorbeeld dat het effect beter laat zien:
SELECT RPAD('Cat', 15) || 'House'
FROM DUAL; Resultaat:
RPAD('CAT',15)||'HOUSE'
__________________________
Cat House Door de twee tekenreeksen aaneen te schakelen, wordt de hoeveelheid opvulling zichtbaar die is toegepast op het rechtergedeelte van de meest linkse tekenreeks.
Merk op dat het opgegeven getal de totale breedte is van de resulterende string – niet de hoeveelheid vulling.
Geef een karakter op
In dit voorbeeld specificeer ik een teken om te gebruiken voor de opvulling:
SELECT RPAD('Cat', 7, '!')
FROM DUAL; Resultaat:
RPAD('CAT',7,'!')
____________________
Cat!!!! Opvulling kleiner dan de originele string
Als het tweede argument kleiner is dan de oorspronkelijke tekenreeks, wordt er geen opvulling toegevoegd en wordt de oorspronkelijke tekenreeks ingekort tot het opgegeven aantal tekens:
SELECT RPAD('Cat', 2)
FROM DUAL; Resultaat:
RPAD('CAT',2)
________________
Ca Databasevoorbeeld
Hier is een voorbeeld van het opvullen van het rechterdeel van de waarden in een databasekolom:
SELECT
country_name,
RPAD(country_name, 12, '.') AS Padded
FROM countries
FETCH FIRST 5 ROWS ONLY; Resultaat:
COUNTRY_NAME PADDED _______________ _______________ Argentina Argentina... Australia Australia... Belgium Belgium..... Brazil Brazil...... Canada Canada......
Null-waarden
Als een van de argumenten null . is het resultaat is null :
SET NULL 'null';
SELECT
RPAD(null, 3),
RPAD('Cat', null),
RPAD('Cat', 3, null)
FROM DUAL; Resultaat:
RPAD(NULL,3) RPAD('CAT',NULL) RPAD('CAT',3,NULL)
_______________ ___________________ _____________________
null null null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null treedt op als resultaat van een SQL SELECT uitspraak.
U kunt echter SET NULL . gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.
Onjuist aantal argumenten
Aanroepen van RPAD() zonder het doorgeven van argumenten geeft een fout:
SELECT RPAD()
FROM DUAL; Resultaat:
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:
En het doorgeven van het verkeerde aantal argumenten resulteert in een fout:
SELECT RPAD('Cat', 1, '>', 2)
FROM DUAL; Resultaat:
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: