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!

PL/SQL - Strings

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:

  1. Zählen der Wörter durch Zählen der Leerzeichen
  2. Extrahieren eines bestimmten Wortes mit SUBSTR und INSTR
  3. 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