PL/SQL - Strings: Ein Anfängerguide
Hallo, zukünftige PL/SQL-Zauberer! Heute werden wir eine aufregende Reise in die Welt der Zeichenketten in PL/SQL antreten. Machen Sie sich keine Sorgen, wenn Sie noch nie eine Zeile Code geschrieben haben - ich werde Ihr freundlicher Guide sein, und wir werden dies Schritt für Schritt angehen. Am Ende dieses Tutorials werden Sie Zeichenketten wie ein Profi manipulieren können!
Was sind Zeichenketten?
Bevor wir eintauchen, lassen Sie uns mit den Grundlagen beginnen. In der Programmierung ist eine Zeichenkette einfach eine Abfolge von Zeichen. Es könnte ein Wort, ein Satz oder sogar ein ganzer Absatz sein. Denken Sie an jeglichen Text, den Sie auf Ihrer Tastatur eingeben könnten.
Deklaration von Zeichenkettenvariablen
In PL/SQL müssen wir unsere Variablen deklarieren, bevor wir sie verwenden können. Das ist wie das Vorstellen von sich selbst, bevor man ein Gespräch beginnt - es ist einfach gute Manieren!
Grundlegende Zeichenkettendeklaration
Lassen Sie uns mit der einfachsten Methode zur Deklaration einer Zeichenkettenvariable beginnen:
DECLARE
my_name VARCHAR2(50) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('Mein Name ist: ' || my_name);
END;
In diesem Beispiel:
- Wir verwenden das Schlüsselwort
DECLARE
, um unsere Variablen zu deklarieren. -
my_name
ist der Name unserer Variable. -
VARCHAR2(50)
bedeutet, dass es sich um eine variabellange Zeichenkette handelt, die bis zu 50 Zeichen aufnehmen kann. -
:=
ist der Zuweisungsoperator, ähnlich einem Gleichheitszeichen. - 'John Doe' ist der initial zugewiesene Wert für
my_name
.
Wenn wir diesen Code ausführen, wird die Ausgabe "Mein Name ist: John Doe" sein.
Verwendung verschiedener Zeichenkettentypen
PL/SQL bietet mehrere Zeichenkettentypen. Sehen wir uns einige an:
DECLARE
v_varchar2 VARCHAR2(20) := 'Hallo, Welt!';
v_char CHAR(10) := 'Fixed ';
v_long LONG := 'Dies ist eine lange Zeichenkette, die bis zu 32.760 Zeichen speichern kann';
BEGIN
DBMS_OUTPUT.PUT_LINE('VARCHAR2: ' || v_varchar2);
DBMS_OUTPUT.PUT_LINE('CHAR: ' || v_char);
DBMS_OUTPUT.PUT_LINE('LONG: ' || v_long);
END;
Hier ist, was passiert:
-
VARCHAR2
ist der am häufigsten verwendete Typ, der variabellange Zeichenketten speichert. -
CHAR
ist für festlängige Zeichenketten gedacht. Beachten Sie, wie es die zusätzlichen Leerzeichen auffüllt. -
LONG
kann sehr lange Zeichenketten speichern, ist aber in einigen Operationen weniger flexibel.
PL/SQL Zeichenkettenfunktionen und Operatoren
Nun, da wir wissen, wie man Zeichenketten deklariert, lassen's uns ein bisschen Spaß mit ihnen haben!
Verkettung
Verkettung ist einfach ein schicker Ausdruck für "Zusammenfügen von Zeichenketten". In PL/SQL verwenden wir den Operator ||
:
DECLARE
first_name VARCHAR2(20) := 'Jane';
last_name VARCHAR2(20) := 'Smith';
full_name VARCHAR2(41);
BEGIN
full_name := first_name || ' ' || last_name;
DBMS_OUTPUT.PUT_LINE('Vollständiger Name: ' || full_name);
END;
Dies wird die Ausgabe "Vollständiger Name: Jane Smith" sein.
Zeichenkettenfunktionen
PL/SQL bringt eine Schatzkiste von eingebauten Funktionen zur Manipulation von Zeichenketten mit. Lassen Sie uns einige der nützlichsten erkunden:
Funktion | Beschreibung | Beispiel |
---|---|---|
UPPER | Konvertiert Zeichenkette in Großbuchstaben | UPPER('hello') gibt 'HELLO' zurück |
LOWER | Konvertiert Zeichenkette in Kleinbuchstaben | LOWER('WORLD') gibt 'world' zurück |
INITCAP | Kapitalisiert die erste Buchstabe jedes Wortes | INITCAP('john doe') gibt 'John Doe' zurück |
LENGTH | Gibt die Länge der Zeichenkette zurück | LENGTH('OpenAI') gibt 6 zurück |
SUBSTR | Extrahiert einen Teil der Zeichenkette | SUBSTR('HelloWorld', 1, 5) gibt 'Hello' zurück |
TRIM | Entfernt angegebene Zeichen von Anfang/Ende | TRIM(' Hello ') gibt 'Hello' zurück |
REPLACE | Ersetzt alle Vorkommen eines Teilstrings | REPLACE('JACK and JILL','J','BL') gibt 'BLACK and BLILL' zurück |
Sehen wir uns diese in Aktion an:
DECLARE
v_string VARCHAR2(50) := ' hello, world! ';
BEGIN
DBMS_OUTPUT.PUT_LINE('Original: ' || v_string);
DBMS_OUTPUT.PUT_LINE('UPPER: ' || UPPER(v_string));
DBMS_OUTPUT.PUT_LINE('LOWER: ' || LOWER(v_string));
DBMS_OUTPUT.PUT_LINE('INITCAP: ' || INITCAP(v_string));
DBMS_OUTPUT.PUT_LINE('LENGTH: ' || LENGTH(v_string));
DBMS_OUTPUT.PUT_LINE('SUBSTR: ' || SUBSTR(v_string, 3, 5));
DBMS_OUTPUT.PUT_LINE('TRIM: ' || TRIM(v_string));
DBMS_OUTPUT.PUT_LINE('REPLACE: ' || REPLACE(v_string, 'o', '0'));
END;
Dieser Code wird die Ausgabe geben:
Original: hello, world!
UPPER: HELLO, WORLD!
LOWER: hello, world!
INITCAP: Hello, World!
LENGTH: 16
SUBSTR: hello
TRIM: hello, world!
REPLACE: hell0, w0rld!
Alles zusammenbringen
Nun kombinieren wir, was wir gelernt haben, zu einem komplexeren Beispiel:
DECLARE
v_sentence VARCHAR2(100) := 'Der schnelle braune Fuchs springt über den faulen Hund';
v_word VARCHAR2(20);
v_count NUMBER;
BEGIN
-- Zähle die Anzahl der Wörter
v_count := LENGTH(v_sentence) - LENGTH(REPLACE(v_sentence, ' ', '')) + 1;
DBMS_OUTPUT.PUT_LINE('Anzahl der Wörter: ' || v_count);
-- Extrahiere und kapitalisiere das 4. Wort
v_word := INITCAP(SUBSTR(v_sentence,
INSTR(v_sentence, ' ', 1, 3) + 1,
INSTR(v_sentence, ' ', 1, 4) - INSTR(v_sentence, ' ', 1, 3) - 1));
DBMS_OUTPUT.PUT_LINE('Das 4. Wort ist: ' || v_word);
-- Ersetze 'Fuchs' mit 'Katze' und 'Hund' mit 'Maus'
v_sentence := REPLACE(REPLACE(v_sentence, 'Fuchs', 'Katze'), 'Hund', 'Maus');
DBMS_OUTPUT.PUT_LINE('Modifizierter Satz: ' || v_sentence);
END;
Dieses Beispiel zeigt:
- Zählen der Wörter durch Zählen der Leerzeichen
- Extrahieren eines bestimmten Wortes mit
SUBSTR
undINSTR
- Ersetzen mehrerer Wörter im Satz
Ausgabe:
Anzahl der Wörter: 9
Das 4. Wort ist: Fuchs
Modifizierter Satz: Der schnelle braune Katze springt über den faulen Maus
Und das war's! Sie haben gerade Ihre ersten Schritte in die wunderbare Welt der PL/SQL-Zeichenketten gemacht. Denken Sie daran, Übung macht den Meister, also fürchten Sie sich nicht, diese Funktionen auszuprobieren und Ihre eigenen Abenteuer der Zeichenkettenmanipulation zu erstellen.
Bevor Sie es wissen, werden Sie komplexe Abfragen zusammenfügen und Ihre Freunde mit Ihrer PL/SQL-Kompetenz beeindrucken. Weiter codieren und viel Spaß beim String-Slinging!
Credits: Image by storyset