PL/SQL - Variablen: Ein Anfängerleitfaden
Hallo da draußen, zukünftige PL/SQL-Zauberer! Heute machen wir uns auf eine aufregende Reise in die Welt der PL/SQL-Variablen. Keine Sorge, wenn du neu im Programmieren bist – ich werde dein freundlicher Guide sein, und wir gehen das Schritt für Schritt durch. Am Ende dieses Tutorials wirst du Variablen wie ein Profi jonglieren können!
Was sind Variablen?
Bevor wir tiefer einsteigen, lassen wir uns verstehen, was Variablen sind. Stell dir Variablen als kleine Behälter im Speicher deines Computers vor, die Daten halten. Genau wie du verschiedene Kisten benutzen könntest, um verschiedene Arten von Gegenständen in deinem Zimmer zu lagern, verwenden wir Variablen, um verschiedene Arten von Daten in unseren Programmen zu speichern.
Variablendeklaration in PL/SQL
In PL/SQL ist das Deklarieren einer Variablen so, als würdest du dich jemandem neuen vorstellen. Du sagst dem Programm: "Hey, ich bin hier, und das ist, was ich halten kann!"
Grundlegende Syntax
Die grundlegende Syntax für die Deklaration einer Variablen in PL/SQL lautet:
variable_name datatype;
Lassen wir das auseinanderbrechen:
-
variable_name
ist, wie du deine Variable nennst -
datatype
ist die Art von Daten, die die Variable halten kann
Beispiele
DECLARE
my_name VARCHAR2(50);
my_age NUMBER;
is_student BOOLEAN;
BEGIN
-- Dein Code hier
END;
In diesem Beispiel:
-
my_name
kann bis zu 50 Zeichen halten -
my_age
kann eine Zahl halten -
is_student
kann TRUE oder FALSE sein
Denke daran, dass man in PL/SQL Variablen im DECLARE-Bereich, bevor das BEGIN-Anweisung, deklariert.
Gemeinsame Datentypen
Hier ist eine Tabelle mit gemeinsamen Datentypen, die du antreffen wirst:
Datentyp | Beschreibung | Beispiel |
---|---|---|
VARCHAR2 | Variabellange Zeichenkette | 'Hallo, Welt!' |
NUMBER | Numerische Werte | 42, 3.14 |
DATE | Datum und Zeitwerte | '01-JAN-2023' |
BOOLEAN | Logische Werte (TRUE/FALSE) | TRUE |
Initialisierung von Variablen in PL/SQL
Nun, da wir unsere Variablen deklariert haben, lassen wir ihnen einige Werte geben! Dieser Prozess wird Initialisierung genannt.
Grundlegende Initialisierung
Du kannst eine Variable direkt bei der Deklaration initialisieren:
DECLARE
greeting VARCHAR2(20) := 'Hallo, PL/SQL!';
lucky_number NUMBER := 7;
BEGIN
DBMS_OUTPUT.PUT_LINE(greeting);
DBMS_OUTPUT.PUT_LINE('Meine Glückszahl ist: ' || lucky_number);
END;
In diesem Beispiel sagen wir "Hallo" zu PL/SQL und teilen unsere Glückszahl. Das :=
ist der Zuweisungsoperator in PL/SQL.
Initialisierung mit NULL
Manchmal möchtest du eine Variable deklarieren, aber noch keinen Wert zuweisen. In diesem Fall kannst du NULL verwenden:
DECLARE
user_input VARCHAR2(100) := NULL;
BEGIN
-- Wir erhalten die Benutzer-Eingabe später
END;
Variablenbereich in PL/SQL
Der Variablenbereich ist wie der Stadtteil einer Variablen – er definiert, wo die Variable gesehen und verwendet werden kann.
Lokale Variablen
Variablen, die in einem Block deklariert werden, sind lokal zu diesem Block. Sie können außerhalb ihres Blocks nicht gesehen werden.
DECLARE
outer_variable VARCHAR2(20) := 'Ich bin draußen!';
BEGIN
DBMS_OUTPUT.PUT_LINE(outer_variable);
DECLARE
inner_variable VARCHAR2(20) := 'Ich bin drinnen!';
BEGIN
DBMS_OUTPUT.PUT_LINE(outer_variable); -- Das funktioniert
DBMS_OUTPUT.PUT_LINE(inner_variable); -- Das funktioniert auch
END;
DBMS_OUTPUT.PUT_LINE(outer_variable); -- Das funktioniert
-- DBMS_OUTPUT.PUT_LINE(inner_variable); -- Das würde einen Fehler verursachen
END;
In diesem Beispiel ist inner_variable
wie ein schüchterner Freund, der nur in der inneren Blockparty auftaucht. Der äußere Block kann ihn nicht sehen!
Globale Variablen
Wenn du eine Variable überall in deinem Programm sichtbar machen möchtest, kannst du sie im äußersten Block deklarieren.
DECLARE
global_var NUMBER := 100;
PROCEDURE print_global IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Wert der globalen Variablen: ' || global_var);
END;
BEGIN
print_global;
global_var := global_var + 50;
print_global;
END;
Hier ist global_var
wie ein beliebter Junge – alle kennen ihn und können mit ihm interagieren!
Zuweisen von SQL-Abfrageergebnissen zu PL/SQL-Variablen
Eine der coolsten Sachen an PL/SQL ist, wie nahtlos es mit SQL integriert ist. Du kannst SQL-Abfragen verwenden, um Werte deinen PL/SQL-Variablen zuzuweisen!
Einzeilige Abfrage
DECLARE
employee_name VARCHAR2(100);
employee_salary NUMBER;
BEGIN
SELECT first_name || ' ' || last_name, salary
INTO employee_name, employee_salary
FROM employees
WHERE employee_id = 100;
DBMS_OUTPUT.PUT_LINE('Mitarbeiter: ' || employee_name);
DBMS_OUTPUT.PUT_LINE('Gehalt: $' || employee_salary);
END;
In diesem Beispiel holen wir die Namen und Gehälter eines Mitarbeiters aus der employees
-Tabelle und speichern sie in unseren PL/SQL-Variablen.
Mehrliniige Abfrage
Für mehrere Zeilen benötigen wir einen Cursor oder eine Bulk Collect. Hier ist ein Beispiel mit Bulk Collect:
DECLARE
TYPE name_table_type IS TABLE OF VARCHAR2(100);
employee_names name_table_type;
BEGIN
SELECT first_name || ' ' || last_name
BULK COLLECT INTO employee_names
FROM employees
WHERE department_id = 60;
FOR i IN 1..employee_names.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Mitarbeiter ' || i || ': ' || employee_names(i));
END LOOP;
END;
Dieses Skript holt alle Mitarbeiter_names aus der Abteilung 60 und speichert sie in einer PL/SQL-Tabelle. Wir durchlaufen dann diese Tabelle, um jeden Namen auszugeben.
Und das war's, Leute! Wir haben die Grundlagen der PL/SQL-Variablen abgedeckt, von der Deklaration bis zur Initialisierung, den Bereich und sogar, wie man sie mit SQL-Abfrageergebnissen füllt. Denke daran, Übung macht den Meister, also fürchte dich nicht, mit diesen Konzepten zu experimentieren.
Bevor ich gehe, hier ist ein kleiner Programmierer-Witz für dich: Warum hat der Programmierer seinen Job gekündigt? Weil er keine Arrays (Erhöhung) bekam! ?
Happy Coding und möge deine Variablen immer artig sein!
Credits: Image by storyset