Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja RPAD() w Oracle

W Oracle RPAD() funkcja pozwala uzupełnić prawą część ciągu określonym znakiem do określonej liczby znaków.

Działa to tak, że określasz, jak długi powinien być łańcuch wynikowy. Jeśli oryginalny ciąg jest krótszy, znak wypełniający wypełnia pozostałą przestrzeń.

Składnia

Składnia wygląda tak:

RPAD(expr1 , n [, expr2 ])

Gdzie:

  • expr1 i expr2 może być dowolnym typem danych CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB lub NCLOB .
  • n to NUMBER liczba całkowita lub wartość, którą można niejawnie przekonwertować na NUMBER liczba całkowita.

Funkcja zwraca expr1 , z dopełnieniem prawym do długości n znaki z sekwencją znaków w expr2 .

Jeśli expr2 zostanie pominięty, znak dopełniający jest pojedynczym odstępem.

Przykład

Oto prosty przykład do zademonstrowania:

SELECT RPAD('Cat', 25)
FROM DUAL;

Wynik:

              RPAD('CAT',25) 
____________________________ 
Cat                         

Nie jest łatwo zobaczyć efekt tego przykładu, ponieważ uzupełniliśmy ciąg domyślnym znakiem (spacją), ale spowodowało to wypchnięcie szerokości kolumny.

Poniżej znajduje się kolejny przykład, który lepiej demonstruje efekt:

SELECT RPAD('Cat', 15) || 'House'
FROM DUAL;

Wynik:

   RPAD('CAT',15)||'HOUSE' 
__________________________ 
Cat            House      

Łączenie dwóch ciągów ujawnia wielkość wypełnienia, które zostało zastosowane do prawej części skrajnego lewego ciągu.

Pamiętaj, że podana liczba to całkowita szerokość wynikowego ciągu – nie ilość dopełnienia.

Określ postać

W tym przykładzie określam znak, który ma być użyty do wypełnienia:

SELECT RPAD('Cat', 7, '!')
FROM DUAL;

Wynik:

   RPAD('CAT',7,'!') 
____________________ 
Cat!!!!             

Dopełnienie mniejsze niż oryginalny ciąg

Jeśli drugi argument jest mniejszy niż oryginalny ciąg, nie jest dodawane żadne uzupełnienie, a oryginalny ciąg jest skracany do określonej liczby znaków:

SELECT RPAD('Cat', 2)
FROM DUAL;

Wynik:

   RPAD('CAT',2) 
________________ 
Ca              

Przykład bazy danych

Oto przykład wypełnienia prawej części wartości w kolumnie bazy danych:

SELECT 
    country_name,
    RPAD(country_name, 12, '.') AS Padded
FROM countries
FETCH FIRST 5 ROWS ONLY;

Wynik:

   COUNTRY_NAME          PADDED 
_______________ _______________ 
Argentina       Argentina...    
Australia       Australia...    
Belgium         Belgium.....    
Brazil          Brazil......    
Canada          Canada......   

Wartości puste

Jeśli którykolwiek z argumentów jest null wynik to null :

SET NULL 'null';

SELECT 
    RPAD(null, 3),
    RPAD('Cat', null),
    RPAD('Cat', 3, null)
FROM DUAL;

Wynik:

   RPAD(NULL,3)    RPAD('CAT',NULL)    RPAD('CAT',3,NULL) 
_______________ ___________________ _____________________ 
null            null                null                 

Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

Nieprawidłowa liczba argumentów

Wywołanie RPAD() bez przekazywania żadnych argumentów zwraca błąd:

SELECT RPAD()
FROM DUAL;

Wynik:

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:

A przekazanie niewłaściwej liczby argumentów skutkuje błędem:

SELECT RPAD('Cat', 1, '>', 2)
FROM DUAL;

Wynik:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć wyniki zapytania jako listę oddzieloną przecinkami w Oracle

  2. Podziel wartości oddzielone przecinkami na kolumny w Oracle

  3. REGEXP_COUNT() Funkcja w Oracle

  4. błąd składni podczas deklarowania zmiennych w procedurze pl/sql

  5. Ostatnie słowo w zdaniu:W SQL (możliwe wyrażenia regularne?)