sql >> Database >  >> RDS >> Oracle

RPAD() Functie in Oracle

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:

  • expr1 en expr2 kan elk van de gegevenstypen zijn CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , of NCLOB .
  • n is een NUMBER geheel getal of een waarde die impliciet kan worden geconverteerd naar een NUMBER geheel 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:

  1. Hoe de naam van een beperking in SQL Server te vinden

  2. TODATETIMEOFFSET() Voorbeelden in SQL Server

  3. Een MySQL-database maken in cPanel

  4. Verschillende manieren om de gebruikers van MySQL te vullen