In Oracle das RPAD()
Mit dieser Funktion können Sie den rechten 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:
RPAD(expr1 , n [, expr2 ])
Wo:
expr1
undexpr2
kann jeder der DatentypenCHAR
sein ,VARCHAR2
,NCHAR
,NVARCHAR2
,CLOB
, oderNCLOB
.n
ist eineNUMBER
ganze Zahl oder ein Wert, der implizit in eineNUMBER
konvertiert werden kann ganze Zahl.
Die Funktion gibt expr1
zurück , rechts 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 RPAD('Cat', 25)
FROM DUAL;
Ergebnis:
RPAD('CAT',25) ____________________________ Cat
Die Wirkung dieses Beispiels ist nicht leicht zu erkennen, da wir die Zeichenfolge mit dem Standardzeichen (einem Leerzeichen) aufgefüllt haben, aber es hatte den Effekt, dass die Breite der Spalte vergrößert wurde.
Unten ist ein weiteres Beispiel, das den Effekt besser demonstriert:
SELECT RPAD('Cat', 15) || 'House'
FROM DUAL;
Ergebnis:
RPAD('CAT',15)||'HOUSE' __________________________ Cat House
Die Verkettung der beiden Zeichenfolgen zeigt die Füllmenge, die auf den rechten Teil der Zeichenfolge ganz links angewendet wurde.
Beachten Sie, dass die angegebene Zahl die Gesamtbreite der resultierenden Zeichenfolge ist – nicht die Menge an Polsterung.
Geben Sie ein Zeichen an
In diesem Beispiel gebe ich ein Zeichen an, das für die Auffüllung verwendet werden soll:
SELECT RPAD('Cat', 7, '!')
FROM DUAL;
Ergebnis:
RPAD('CAT',7,'!') ____________________ Cat!!!!
Padding kleiner als die ursprüngliche Zeichenfolge
Wenn das zweite Argument kleiner als die ursprüngliche Zeichenfolge ist, wird keine Auffüllung hinzugefügt, und die ursprüngliche Zeichenfolge wird auf die angegebene Anzahl von Zeichen gekürzt:
SELECT RPAD('Cat', 2)
FROM DUAL;
Ergebnis:
RPAD('CAT',2) ________________ Ca
Datenbankbeispiel
Hier ist ein Beispiel für das Auffüllen des rechten Teils der Werte in einer Datenbankspalte:
SELECT
country_name,
RPAD(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
RPAD(null, 3),
RPAD('Cat', null),
RPAD('Cat', 3, null)
FROM DUAL;
Ergebnis:
RPAD(NULL,3) RPAD('CAT',NULL) RPAD('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 RPAD()
ohne Übergabe von Argumenten gibt einen Fehler zurück:
SELECT RPAD()
FROM DUAL;
Ergebnis:
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:
Und das Übergeben der falschen Anzahl von Argumenten führt zu einem Fehler:
SELECT RPAD('Cat', 1, '>', 2)
FROM DUAL;
Ergebnis:
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: