I Oracle, RPAD() funktionen låter dig fylla den högra delen av en sträng med ett visst tecken, till ett visst antal tecken.
Hur det fungerar är att du anger hur lång den resulterande strängen ska vara. Om originalsträngen är kortare fyller utfyllnadstecknet ut det återstående utrymmet.
Syntax
Syntaxen ser ut så här:
RPAD(expr1 , n [, expr2 ]) Var:
expr1ochexpr2kan vara vilken som helst av datatypernaCHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, ellerNCLOB.när ettNUMBERheltal eller ett värde som implicit kan konverteras till ettNUMBERheltal.
Funktionen returnerar expr1 , högerstoppad till längden n tecken med teckensekvensen i expr2 .
Om expr2 är utelämnat, är utfyllnadstecknet ett enda blanksteg.
Exempel
Här är ett enkelt exempel att visa:
SELECT RPAD('Cat', 25)
FROM DUAL; Resultat:
RPAD('CAT',25)
____________________________
Cat Det är inte lätt att se effekten av det här exemplet, eftersom vi vadderade strängen med standardtecknet (ett mellanslag), men det hade effekten av att trycka ut bredden på kolumnen.
Nedan är ett annat exempel som visar effekten bättre:
SELECT RPAD('Cat', 15) || 'House'
FROM DUAL; Resultat:
RPAD('CAT',15)||'HOUSE'
__________________________
Cat House Sammanfogning av de två strängarna avslöjar mängden stoppning som applicerades på den högra delen av strängen längst till vänster.
Observera att numret som anges är den totala bredden på den resulterande strängen – inte mängden stoppning.
Ange ett tecken
I det här exemplet anger jag ett tecken som ska användas för utfyllnad:
SELECT RPAD('Cat', 7, '!')
FROM DUAL; Resultat:
RPAD('CAT',7,'!')
____________________
Cat!!!! Utfyllning mindre än originalsträngen
Om det andra argumentet är mindre än den ursprungliga strängen läggs ingen utfyllnad till och den ursprungliga strängen förkortas till det angivna antalet tecken:
SELECT RPAD('Cat', 2)
FROM DUAL; Resultat:
RPAD('CAT',2)
________________
Ca Databasexempel
Här är ett exempel på utfyllnad av den högra delen av värdena i en databaskolumn:
SELECT
country_name,
RPAD(country_name, 12, '.') AS Padded
FROM countries
FETCH FIRST 5 ROWS ONLY; Resultat:
COUNTRY_NAME PADDED _______________ _______________ Argentina Argentina... Australia Australia... Belgium Belgium..... Brazil Brazil...... Canada Canada......
Nullvärden
Om något av argumenten är null resultatet är null :
SET NULL 'null';
SELECT
RPAD(null, 3),
RPAD('Cat', null),
RPAD('Cat', 3, null)
FROM DUAL; Resultat:
RPAD(NULL,3) RPAD('CAT',NULL) RPAD('CAT',3,NULL)
_______________ ___________________ _____________________
null null null
Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när null uppstår som ett resultat av en SQL SELECT påstående.
Du kan dock använda SET NULL för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null bör returneras.
Inkorrekt antal argument
Anropar RPAD() utan att skicka några argument returnerar ett fel:
SELECT RPAD()
FROM DUAL; Resultat:
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:
Och att skicka fel antal argument resulterar i ett fel:
SELECT RPAD('Cat', 1, '>', 2)
FROM DUAL; Resultat:
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: