In Oracle das LPAD() Mit der Funktion können Sie den linken Teil einer Zeichenfolge mit einem bestimmten Zeichen bis zu einer bestimmten Anzahl von Zeichen auffüllen.
Die Funktionsweise ist, dass Sie angeben, wie lang die resultierende Zeichenfolge sein soll. Wenn die ursprüngliche Zeichenfolge kürzer ist, füllt das Füllzeichen den verbleibenden Platz aus.
Syntax
Die Syntax lautet wie folgt:
LPAD(expr1, n [, expr2 ]) Wo:
expr1undexpr2kann jeder der DatentypenCHARsein ,VARCHAR2,NCHAR,NVARCHAR2,CLOB, oderNCLOB.nist eineNUMBERganze Zahl oder ein Wert, der implizit in eineNUMBERkonvertiert werden kann ganze Zahl.
Die Funktion gibt expr1 zurück , links aufgefüllt auf die Länge n Zeichen mit der Zeichenfolge in expr2 .
Wenn expr2 weggelassen wird, ist das Füllzeichen ein einzelnes Leerzeichen.
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung:
SELECT LPAD('Cat', 5)
FROM DUAL; Ergebnis:
LPAD('CAT',5)
________________
Cat Beachten Sie, dass die angegebene Zahl die Gesamtbreite der resultierenden Zeichenfolge ist – nicht die Menge an Polsterung.
Hier ist es noch einmal im Vergleich zum ursprünglichen (nicht aufgefüllten) String:
SELECT LPAD('Cat', 5)
FROM DUAL
UNION ALL
SELECT 'Cat'
FROM DUAL; Ergebnis:
LPAD('CAT',5)
________________
Cat
Cat Geben Sie ein Zeichen an
In diesem Beispiel gebe ich ein Zeichen an, das für die Auffüllung verwendet werden soll:
SELECT LPAD('Cat', 5, '>')
FROM DUAL; Ergebnis:
LPAD('CAT',5,'>')
____________________
>>Cat Padding kleiner als die ursprüngliche Zeichenfolge
Wenn das zweite Argument kleiner als der ursprüngliche String ist, wird kein Padding hinzugefügt und der ursprüngliche String wird auf die angegebene Anzahl von Zeichen gekürzt:
SELECT LPAD('Cat', 2)
FROM DUAL; Ergebnis:
LPAD('CAT',2)
________________
Ca Datenbankbeispiel
Hier ist ein Beispiel für das Auffüllen des linken Teils der Werte in einer Datenbankspalte:
SELECT
country_name,
LPAD(country_name, 12, '.') AS Padded
FROM countries
FETCH FIRST 5 ROWS ONLY; Ergebnis:
COUNTRY_NAME PADDED _______________ _______________ Argentina ...Argentina Australia ...Australia Belgium .....Belgium Brazil ......Brazil Canada ......Canada
Nullwerte
Wenn eines der Argumente null ist das Ergebnis ist null :
SET NULL 'null';
SELECT
LPAD(null, 3),
LPAD('Cat', null),
LPAD('Cat', 3, null)
FROM DUAL; Ergebnis:
LPAD(NULL,3) LPAD('CAT',NULL) LPAD('CAT',3,NULL)
_______________ ___________________ _____________________
null null null
Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null tritt als Ergebnis eines SQL SELECT auf Erklärung.
Sie können jedoch SET NULL verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null zurückgegeben werden soll.
Falsche Argumentanzahl
Aufruf von LPAD() ohne Übergabe von Argumenten gibt einen Fehler zurück:
SELECT LPAD()
FROM DUAL; Ergebnis:
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:
Und das Übergeben der falschen Anzahl von Argumenten führt zu einem Fehler:
SELECT LPAD('Cat', 1, '>', 2)
FROM DUAL; Ergebnis:
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: