W Oracle LPAD() funkcja pozwala dopełnić lewą 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:
LPAD(expr1, n [, expr2 ]) Gdzie:
expr1iexpr2może być dowolnym typem danychCHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOBlubNCLOB.ntoNUMBERliczba całkowita lub wartość, którą można niejawnie przekonwertować naNUMBERliczba całkowita.
Funkcja zwraca expr1 , dopełnione z lewej strony 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 LPAD('Cat', 5)
FROM DUAL; Wynik:
LPAD('CAT',5)
________________
Cat Pamiętaj, że podana liczba to całkowita szerokość wynikowego ciągu – nie ilość wypełnienia.
Oto znowu w porównaniu z oryginalnym (niewypełnionym) ciągiem:
SELECT LPAD('Cat', 5)
FROM DUAL
UNION ALL
SELECT 'Cat'
FROM DUAL; Wynik:
LPAD('CAT',5)
________________
Cat
Cat Określ postać
W tym przykładzie określam znak, który ma być użyty do wypełnienia:
SELECT LPAD('Cat', 5, '>')
FROM DUAL; Wynik:
LPAD('CAT',5,'>')
____________________
>>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 LPAD('Cat', 2)
FROM DUAL; Wynik:
LPAD('CAT',2)
________________
Ca Przykład bazy danych
Oto przykład wypełniania lewej części wartości w kolumnie bazy danych:
SELECT
country_name,
LPAD(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
LPAD(null, 3),
LPAD('Cat', null),
LPAD('Cat', 3, null)
FROM DUAL; Wynik:
LPAD(NULL,3) LPAD('CAT',NULL) LPAD('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 LPAD() bez przekazywania żadnych argumentów zwraca błąd:
SELECT LPAD()
FROM DUAL; Wynik:
Error starting at line : 1 in command - SELECT LPAD() 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 LPAD('Cat', 1, '>', 2)
FROM DUAL; Wynik:
Error starting at line : 1 in command -
SELECT LPAD('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: